【发布时间】:2012-08-06 19:13:32
【问题描述】:
此代码的问题在于文件在上传后不是正确的格式。我正在尝试上传 .zip 文件。
public string HttpPost(string uri, string parameter)
{
WebRequest webRequest = WebRequest.Create(uri);
NetworkCredential credentials = new NetworkCredential("username", "password");
webRequest.Credentials = credentials;
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(parameter);
Stream os = null;
try
{ // send the Post
webRequest.ContentLength = bytes.Length; //Count bytes to send
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Send it
}
catch (WebException ex)
{
MessageBox.Show(ex.Message, "HttpPost: Request error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (os != null)
{
os.Close();
}
}
try
{ // get the response
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null)
{ return null; }
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
return sr.ReadToEnd().Trim();
}
catch (WebException ex)
{
MessageBox.Show(ex.Message, "HttpPost: Response error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return null;
}
【问题讨论】:
-
您使用的是哪个网络服务平台? ASMX、WCF(RESTful 还是 SOAP?)、ASP.NET MVC Web-API 等?
-
您正在尝试上传 zip 文件,因此内容类型应为 application/octet-stream
-
如何编码。它还会是我所拥有的吗? byte[] bytes = Encoding.ASCII.GetBytes(参数);
-
您有许多实现
IDisposable的实例,因此它们应该位于using块中。 -
由于某种原因上传文件时,文件名是:98A12C12-870C-42DA-9EF8-5278B7C9BD9F,当我点击打开时,它不是图片。我不确定我在这里缺少什么。
标签: c# web-services api amazon-s3