HttpClient при подключении к серверу Azure при восстановлении сети выдает ошибку - невозможно подключиться к удаленному серверу - PullRequest
0 голосов
/ 16 ноября 2018

Запрос выполняется с httpclient, размещенного в элементе управления WPF, на сервер Azure, и сервер Azure отправляет результаты обратно в элемент управления WPF. Когда подключение к Интернету отключено и сделан постасинхронный запрос, генерируется httprequestexception. Когда интернет-соединение восстановлено и сделан запрос postaysnc, post async работает нормально, и если я снова отключаю интернет-соединение и заставляю post async выдает исключение. После восстановления интернет-соединения postasync вызывает исключение httprequest. Как решить эту проблему.

var httpContent = new StringContent(value, Encoding.UTF8, "application/json");
var queryUri = new Uri(httpClient.BaseAddress, "content/resultvalue");
var response = await httpClient.PostAsync(queryUri, httpContent);
response.EnsureSuccessStatusCode();
var resultJson = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<Result>(resultJson);

1 Ответ

0 голосов
/ 16 ноября 2018

Это ожидаемое поведение.Если он не может подключиться к серверу, выдается исключение.Это описано в документации для HttpClient.PostAsync под заголовком Обработка исключений .

Если вам нужно перехватить исключение, поместите его в блок try / catch исделать что-то с исключением.

var httpContent = new StringContent(value, Encoding.UTF8, "application/json");
var queryUri = new Uri(httpClient.BaseAddress, "content/resultvalue");
try {
    var response = await httpClient.PostAsync(queryUri, httpContent);
    response.EnsureSuccessStatusCode();
    var resultJson = await response.Content.ReadAsStringAsync();
    var result = JsonConvert.DeserializeObject<Result>(resultJson);
} catch (Exception e) {
    //report the exception to the user
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...