Убедитесь, что HttpClient подключен - PullRequest
0 голосов
/ 06 сентября 2018

С httpClient Я делаю POST-запрос, однако проблема в том, что даже если есть нет соединения, потому что целевой API не работает, он не возвращает никаких ошибок.

using (var httpClient = new HttpClient())
{
    httpClient.BaseAddress = new Uri(proxySettingsConfiguration.BaseAdress);

    var json = JsonConvert.SerializeObject(item);
    var parameters = new Dictionary<string, string> { { "Application", "Demo" }, { "Payload", json } };
    var encodedContent = new FormUrlEncodedContent(parameters);

    var response = await httpClient.PostAsync(proxySettingsConfiguration.RequestUri, encodedContent);
}

Есть ли способ заранее проверить, работает ли пункт назначения? Без использования PING

1 Ответ

0 голосов
/ 06 сентября 2018

Недавно я использовал Youtube API, и у меня возникли те же проблемы с получением данных, поиском по названию песни ... и т. Д., Я сделал (я добавил) (в вашем случае)

response = await httpClient.PostAsync(proxySettingsConfiguration.RequestUri, encodedContent);

в try / catch, поэтому это будет

try
        {
            response = await httpClient.PostAsync(proxySettingsConfiguration.RequestUri, encodedContent);
        }
        catch (Exception ex)
        {//In my case I was looking at this error

            if (ex.GetType().ToString() == "Google.Apis.Auth.OAuth2.Responses.TokenResponseException")
            {
                MessageBox.Show("Failed to login", "Error on login",
                       MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                MessageBox.Show("Failed to login", "Error on login",
                       MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Если вы распечатаете исключение (messagebox, debug), вы увидите, что это тип ошибки, или вы можете найти дополнительную информацию об используемом API.и посмотрите, какие типы ошибок он может выдать, найдите ту, которая хороша, вы можете добавить несколько с разными сообщениями, чтобы ваша программа не вылетала, если у нее есть какие-то ошибки.Надеюсь, это немного поможет.

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