Я ПОСТАВИЛ XML-данные с помощью WebClient.C# - Catch WebException при отправке XML Async
public string uploadXMLData(string destinationUrl, string requestXml)
{
try
{
System.Uri uri = new System.Uri(destinationUrl);
using (WebClient client = new WebClient())
{
client.Headers.Add("content-type", "text/xml");
var response = client.UploadString(destinationUrl, "POST", requestXml);
}
}
catch (WebException webex)
{
WebResponse errResp = webex.Response;
using (Stream respStream = errResp.GetResponseStream())
{
StreamReader reader = new StreamReader(respStream);
string text = reader.ReadToEnd();
}
}
catch (Exception e)
{ }
return null;
}
Когда есть ошибка, я ловлю его как WebException, и я прочитал поток для того, чтобы знать, что ответ XML является.
Что мне нужно сделать, это отправить XML-данные в URL-адрес в Async. Поэтому я изменил функцию:
public string uploadXMLData(string destinationUrl, string requestXml)
{
try
{
System.Uri uri = new System.Uri(destinationUrl);
using (WebClient client = new WebClient())
{
client.UploadStringCompleted
+= new UploadStringCompletedEventHandler(UploadStringCallback2);
client.UploadStringAsync(uri, requestXml);
}
}
catch (Exception e)
{ }
return null;
}
void UploadStringCallback2(object sender, UploadStringCompletedEventArgs e)
{
Console.WriteLine(e.Error);
}
Как я могу поймать WebException сейчас и прочитать ответ XML?
Можно ли выбросить e.Error?
Любая помощь будет оценена
видеть эту ссылку ... он дает подробную информацию о том, как обрабатывать исключения с реализацией aync. http://stackoverflow.com/questions/5383310/catch-an-exception-thrown-by-an-async-method – Prashant
@Prashant Спасибо. Я хочу, чтобы он работал с UploadStringAsync ... – HelpASisterOut