首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpClient在网络恢复时连接到azure服务器时抛出错误-无法连接到远程服务器

HttpClient在网络恢复时连接到azure服务器时抛出错误-无法连接到远程服务器
EN

Stack Overflow用户
提问于 2018-11-17 01:35:02
回答 1查看 80关注 0票数 0

从WPF控件中托管的httpclient向azure服务器发出查询,azure服务器将结果发送回WPF控件。当禁用Internet连接并执行postasync查询时,将抛出httprequestexception。当互联网连接恢复并进行postaysnc查询时,post async工作正常,如果我再次禁用互联网连接并使post async抛出异常。一旦重新建立了internet连接,postasync就会抛出httprequest异常。如何解决这个问题。

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2018-11-17 01:46:14

这是预期的行为。如果它无法连接到服务器,则会抛出异常。在Exception Handling标题下的HttpClient.PostAsync文档中对此进行了描述。

如果需要捕获异常,则将其放在try/catch块中,并对该异常执行一些操作。

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53342790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档