Я занимаюсь разработкой приложения для Windows Phone 7, и мне нужно поместить некоторые данные в API REST нашей компании.
Я тестировал этот вызов API и натолкнулся на исключение WebException, которое я не смог уловить. Изначально мой вызов был в лямбде, поэтому я включил его в функции-члены, но все равно не повезло.
Строка ошибки: «Удаленный сервер возвратил ошибку: NotFound». Что не является неожиданностью, URI, который пытается использовать мое приложение, может быть недействительным либо из-за того, что я облажался, либо из-за того, что наш промежуточный сервер не работает.
Как, черт возьми, я должен проверить, не прошел ли мой запрос, если я не могу поймать это исключение?
Вот мой игрушечный пример:
void TriggerApiCall()
{
var request = HttpWebRequest.Create(new Uri(
"http://api.ourcompany.com" +
"/stuff/" +
someParameterizedPath + "?" +
"firstParam=" + someClassMember +
"&secondParam=8badf00d"));
request.Method = "PUT";
request.BeginGetResponse(TryCall, request);
}
private void TryCall(IAsyncResult result)
{
HttpWebRequest request = result.AsyncState as HttpWebRequest;
var completed = result.IsCompleted;
WebResponse response = null;
try {
bool hasresp = request.HaveResponse;
response = request.EndGetResponse(result);
} catch (Exception e) {
System.Diagnostics.Debug.WriteLine(e); // Never reaches here,
// Exception propagates to top
}
response.Close();
}