WebClient.UploadData和Internal 500错误

时间:2011-04-14 03:32:59

标签: c# file-upload webclient.uploaddata

大家。我用c#语言编程,我遇到了WebClient类的问题。 我使用方法WebClient.DownloadData下载了一个图像,它运行正常。但是,WebClient.UploadData没有。 详细地说,我有一个byte []包含一个图像的内容 - 命名字节,以及我要上传到的图像文件夹的URL - 名为filePath。那么,

 WebClient wc = new WebClient(); 
 byte[] responseArray = wc.UploadData(filePath, "POST", bytes);

它会在错误后返回给我

System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
   at System.Net.WebClient.UploadData(Uri address, String method, Byte[] data)
   at System.Net.WebClient.UploadData(String address, String method, Byte[] data)

我也研究过这个问题的一些解决方案,但是没有一个能为我工作。 :( 请帮忙! :-s

1 个答案:

答案 0 :(得分:2)

试试这个页面。它有一个帖子示例。

它使用webrequest而不是webclient,但它来自微软,应该是一个很好的例子。

WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
request.Method = "POST";
string postData = "This is a test that posts this string to a Web server.";
byte[] byteArray = Encoding.UTF8.GetBytes (postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;


//Here is the Business end of the code...
Stream dataStream = request.GetRequestStream ();
dataStream.Write (byteArray, 0, byteArray.Length);
dataStream.Close ();
//and here is the response.
WebResponse response = request.GetResponse ();

Console.WriteLine (((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
Console.WriteLine (responseFromServer);
reader.Close ();
dataStream.Close ();
response.Close ();

我精简了代码并评论了你想看的部分。

http://msdn.microsoft.com/en-us/library/debx8sh9.aspx