WebClient.UploadData и внутренняя ошибка 500 - PullRequest
0 голосов
/ 14 апреля 2011

все. Я программирую на языке 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, String method, Byte[] data)
   at System.Net.WebClient.UploadData(String address, String method, Byte[] data)

Я также исследовал некоторые решения этой проблемы, однако ни один из них не помог мне. :( Пожалуйста помоги! : -S

1 Ответ

2 голосов
/ 14 апреля 2011

попробуйте эту страницу.У него есть пример публикации.

В нем используется веб-запрос, а не веб-клиент, но он от 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, 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

...