Получить причину httprequestexception - PullRequest
0 голосов
/ 17 января 2020

Существует множество причин получить исключение httprequestex. Например, клиент не подключен к inte rnet, сервер не работает, домен не существует или в моем случае не работает поддомен. Можно ли различить guish между причиной исключения на стороне клиента (проблемы с подключением) и исключениями на стороне сервера, например, при отключенном сервере? Я использую HttpClient Syn c. WaitAndUnwrapException из библиотеки AsyncEx.

private JObject Get(string url)
{
    JObject getResponse = new JObject();
    getResponse["error"] = (int)Error.None;
    getResponse["message"] = "";
    try
    {
        using (HttpClient client = new HttpClient())
        {
            Task<HttpResponseMessage> res1 = client.GetAsync(url + GetRequestRandomizer());

            HttpResponseMessage res = res1.WaitAndUnwrapException();
            if (res.IsSuccessStatusCode && res.StatusCode == HttpStatusCode.OK)
            {
                var responseContent = res.Content;
                getResponse["error"] = (int)Error.None;
                getResponse["message"] = responseContent.ReadAsStringAsync().Result;
            }
            else
            {
                getResponse["error"] = (int)Error.RequestError;
                getResponse["message"] = "";
            }
        }
    }
    catch (HttpRequestException exception)
    {
        getResponse["error"] = (int)Error.NetworkError;
        getResponse["message"] = "";
    }
    return getResponse;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...