HttpClient.GetStreamAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。
多載
| 名稱 | Description |
|---|---|
| GetStreamAsync(Uri) |
向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。 |
| GetStreamAsync(String) |
向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。 |
備註
行動不會被阻擋。
GetStreamAsync(Uri)
向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。
public:
System::Threading::Tasks::Task<System::IO::Stream ^> ^ GetStreamAsync(Uri ^ requestUri);
public System.Threading.Tasks.Task<System.IO.Stream> GetStreamAsync(Uri requestUri);
member this.GetStreamAsync : Uri -> System.Threading.Tasks.Task<System.IO.Stream>
Public Function GetStreamAsync (requestUri As Uri) As Task(Of Stream)
參數
- requestUri
- Uri
請求被送達的 URI。
傳回
表示異步操作的工作物件。
例外狀況
這 requestUri 不是絕對的 URI,也 BaseAddress 沒有設定好。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
回應狀態碼超出200-299(標準中代表成功)範圍。
-或-
僅限 .NET 框架:請求已逾時。
僅 .NET Core 及 .NET 5 及以後版本:因逾時而請求失敗。
備註
這個操作不會阻擋。 回傳的 任務<串流> 物件會在回應標頭被讀取後完成。 此方法不會讀取或緩衝回應體。
內部操作 HttpResponseMessage.EnsureSuccessStatusCode 用來確保回應狀態碼在成功範圍內(200-299),若未達成功則拋出 a HttpRequestException 。
在某些情況下,您可能需要更多控制哪些狀態碼被視為成功;例如,一個 API 可能被期望總是回傳 200 OK。 在這種情況下,我們建議手動檢查是否 StatusCode 符合預期值。
Note
若有暫停:
- .NET Framework 會拋出 HttpRequestException。
- .NET 核心會拋出 OperationCanceledException,且沒有內部例外。
- .NET 5 及以後版本會丟出一個 OperationCanceledException,該 巢狀為 TimeoutException。
適用於
GetStreamAsync(String)
向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。
public:
System::Threading::Tasks::Task<System::IO::Stream ^> ^ GetStreamAsync(System::String ^ requestUri);
public System.Threading.Tasks.Task<System.IO.Stream> GetStreamAsync(string requestUri);
member this.GetStreamAsync : string -> System.Threading.Tasks.Task<System.IO.Stream>
Public Function GetStreamAsync (requestUri As String) As Task(Of Stream)
參數
- requestUri
- String
請求被送達的 URI。
傳回
表示異步操作的工作物件。
例外狀況
這 requestUri 不是絕對的 URI,也 BaseAddress 沒有設定好。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
回應狀態碼超出200-299(標準中代表成功)範圍。
-或-
僅限 .NET 框架:請求已逾時。
僅 .NET Core 及 .NET 5 及以後版本:因逾時而請求失敗。
所提供的請求 URI 既非有效的相對 URI,也非絕對 URI。
備註
這個操作不會阻擋。 回傳的 任務<串流> 物件會在回應標頭被讀取後完成。 此方法不會讀取或緩衝回應體。
內部操作 HttpResponseMessage.EnsureSuccessStatusCode 用來確保回應狀態碼在成功範圍內(200-299),若未達成功則拋出 a HttpRequestException 。
在某些情況下,您可能需要更多控制哪些狀態碼被視為成功;例如,一個 API 可能被期望總是回傳 200 OK。 在這種情況下,我們建議手動檢查是否 StatusCode 符合預期值。
Note
若有暫停:
- .NET Framework 會拋出 HttpRequestException。
- .NET 核心會拋出 OperationCanceledException,且沒有內部例外。
- .NET 5 及以後版本會丟出一個 OperationCanceledException,該 巢狀為 TimeoutException。