检查GetStreamAsync状态

时间:2016-08-02 15:12:55

标签: c# stream http-status-codes getasync

通过GetStreamAsync抓取图片,如何确定状态?

HttpClient OpenClient = new HttpClient();
Stream firstImageStream = OpenClient.GetStreamAsync("imageUrl.jpg").Result;

有时这会产生错误(通常为403或404),我只想跳过处理这些结果。

我所能找到的只是说使用StatusCode属性或IsSuccessStatusCode,但这些似乎只适用于HttpResponseMessage,来自GetAsync,它不会给我Stream 1}}我需要处理图像。

1 个答案:

答案 0 :(得分:2)

该流没有响应状态代码。您需要先获取HttpResponseMessage,检查状态代码,然后在流中读取。

HttpClient OpenClient = new HttpClient();
var response = await OpenClient.GetAsync("imageUrl.jpg");
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
    Stream stream = await response.Content.ReadAsStreamAsync();
}