WebClient.UploadData和内部500错误

问题描述

| 大家。我正在用C#语言编程,并且WebClient类有问题。 我使用方法WebClient.DownloadData下载了一个图像,它工作正常。但是,WebClient.UploadData没有。 详细地说,我有一个byte [],它包含图像的内容-名为bytes,以及我要上传到的图像文件夹的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,Byte[] data)
   at System.Net.WebClient.UploadData(String address,Byte[] data)
我也研究了一些解决此问题的方法,但是没有一个我有用。 :( 请帮忙! :-s     

解决方法

试试这个页面。它有一个发布示例。 它使用webrequest而不是webclient,但是它来自Microsoft,应该是一个很好的例子。
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,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/zh-CN/library/debx8sh9.aspx