检查 GetStreamAsync 状态

Ran*_*all 1 c# stream http-status-codes getasync

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

HttpClient OpenClient = new HttpClient();
Stream firstImageStream = OpenClient.GetStreamAsync("imageUrl.jpg").Result;
Run Code Online (Sandbox Code Playgroud)

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

我能找到的所有内容都说要使用StatusCode属性 or IsSuccessStatusCode,但那些似乎只适用于HttpResponseMessage来自 GetAsync 的 ,它没有给我Stream处理图像所需的条件。

Pha*_*lon 5

流没有响应状态代码。您需要先获取 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();
}
Run Code Online (Sandbox Code Playgroud)