我有以下内容,我是否尝试从服务器下载字符串:
HttpClient client = new HttpClient();
var getResponsestring = await client.GetStringAsync("url");
但是我该怎么做以及服务器是否没有返回我想要的字符串,例如错误401?或者那个mather的任何网络错误
答案 0 :(得分:17)
你有两个选择。将请求分解为两个步骤。
HttpClient client = new HttpClient();
var response = await client.GetAsync("url");
if (response.IsSuccessStatusCode) {
var getResponsestring = await response.Content.ReadAsStringAsync();
}
或者您插入一个新的MessageHandler,它将返回错误的库存响应。
var errorMessageHandler = new ErrorMessageHandler(new HttpClientHandler());
HttpClient client = new HttpClient(errorMessageHandler);
var getResponsestring = await client.GetStringAsync("url");
您必须通过从DelegatingHandler派生并重写SendAsync来自己实现ErrorMessageHandler。
答案 1 :(得分:2)
HttpClient.GetStringAsync Method返回Task,Exception property。
<强>更新强>
当我们使用async / await时,我们可以在try/catch
块中包装等待的调用以处理异常。