WebClient.Загружаемые данные и внутренняя ошибка 500

#c# #file-upload #webclient.uploaddata

#c# #загрузка файла #webclient.uploaddata

Вопрос:

все. Я программирую на языке 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, WebRequestamp; 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:

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

Вместо webclient используется webrequest, но он от 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