Почему C # .NET WebException не попадает в эмулятор WP7? - PullRequest
1 голос
/ 01 июня 2011

Я занимаюсь разработкой приложения для 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();
}

1 Ответ

0 голосов
/ 01 июня 2011

Исследования показывают, что в Silverlight 3 и выше появился новый стек ClientHttp.

http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...