繁体   English   中英

连接到网络还原上的Azure服务器的HttpClient引发错误-无法连接到远程服务器

[英]HttpClient connecting to azure server on network restore throws an error - unable to connect to remote server

从WPF控件中托管的httpclient向azure服务器进行查询,然后azure服务器将结果发送回WPF控件。 禁用Internet连接并进行postasync查询时,将引发httprequestexception。 当恢复互联网连接并进行postaysnc查询时,post async工作正常,如果我再次禁用了Internet连接,并使post async抛出异常。 重新建立Internet连接后,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);

那是预期的行为。 如果它无法连接到服务器,则会引发异常。 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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM