HttpClient.SendAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以非同步操作方式發送 HTTP 請求。
多載
| 名稱 | Description |
|---|---|
| SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
以非同步操作方式發送 HTTP 請求。 |
| SendAsync(HttpRequestMessage) |
以非同步操作方式發送 HTTP 請求。 |
| SendAsync(HttpRequestMessage, HttpCompletionOption) |
以非同步操作方式發送 HTTP 請求。 |
| SendAsync(HttpRequestMessage, CancellationToken) |
以非同步操作方式發送 HTTP 請求。 |
備註
這個操作不會阻擋。
SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken)
以非同步操作方式發送 HTTP 請求。
public:
System::Threading::Tasks::Task<System::Net::Http::HttpResponseMessage ^> ^ SendAsync(System::Net::Http::HttpRequestMessage ^ request, System::Net::Http::HttpCompletionOption completionOption, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken);
override this.SendAsync : System.Net.Http.HttpRequestMessage * System.Net.Http.HttpCompletionOption * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
Public Function SendAsync (request As HttpRequestMessage, completionOption As HttpCompletionOption, cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
參數
- request
- HttpRequestMessage
HTTP 請求訊息要發送。
- completionOption
- HttpCompletionOption
操作應該在何時完成(當有回應可用時,或在閱讀完整回應內容後)。
- cancellationToken
- CancellationToken
取消令牌用於取消操作。
傳回
表示異步操作的工作物件。
例外狀況
request 是 null。
請求訊息已經由實例發送 HttpClient 了。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
僅限 .NET Framework 使用:請求已逾時。
備註
這個操作不會阻擋。 根據參數 completionOption 值的不同,回傳 Task<TResult> 的物件會在回應可用或完整回應(包含內容)被讀取時立即完成。
Note
若逾時,會對不同的 .NET 實作拋出不同的例外。
- HttpRequestException 會被丟在所有適用的 .NET Framework 版本上。
- OperationCanceledException 在所有適用的 .NET Core 版本中,且無任何內部例外。
- OperationCanceledException 巢狀的 TimeoutException 會丟.NET 5 及以後版本。
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Send(HttpRequestMessage, HttpCompletionOption)拋出的例外。
適用於
SendAsync(HttpRequestMessage)
以非同步操作方式發送 HTTP 請求。
public:
System::Threading::Tasks::Task<System::Net::Http::HttpResponseMessage ^> ^ SendAsync(System::Net::Http::HttpRequestMessage ^ request);
public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request);
override this.SendAsync : System.Net.Http.HttpRequestMessage -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
Public Function SendAsync (request As HttpRequestMessage) As Task(Of HttpResponseMessage)
參數
- request
- HttpRequestMessage
HTTP 請求訊息要發送。
傳回
表示異步操作的工作物件。
例外狀況
request 是 null。
請求訊息已經由實例發送 HttpClient 了。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
僅限 .NET 框架:請求已逾時。
僅 .NET Core 及 .NET 5 及以後版本:因逾時而請求失敗。
備註
這個操作不會阻擋。 回傳 Task<TResult> 物件在完整回應(包括內容)被讀取後才會完成。 行為與明確指定相同 ResponseContentRead 。
Note
若逾時,會對不同的 .NET 實作拋出不同的例外。
- HttpRequestException 會被丟在所有適用的 .NET Framework 版本上。
- OperationCanceledException 在所有適用的 .NET Core 版本中,且無任何內部例外。
- OperationCanceledException 巢狀的 TimeoutException 會丟.NET 5 及以後版本。
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Send(HttpRequestMessage)拋出的例外。
適用於
SendAsync(HttpRequestMessage, HttpCompletionOption)
以非同步操作方式發送 HTTP 請求。
public:
System::Threading::Tasks::Task<System::Net::Http::HttpResponseMessage ^> ^ SendAsync(System::Net::Http::HttpRequestMessage ^ request, System::Net::Http::HttpCompletionOption completionOption);
public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption);
override this.SendAsync : System.Net.Http.HttpRequestMessage * System.Net.Http.HttpCompletionOption -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
Public Function SendAsync (request As HttpRequestMessage, completionOption As HttpCompletionOption) As Task(Of HttpResponseMessage)
參數
- request
- HttpRequestMessage
HTTP 請求訊息要發送。
- completionOption
- HttpCompletionOption
操作應該在何時完成(當有回應可用時,或在閱讀完整回應內容後)。
傳回
表示異步操作的工作物件。
例外狀況
request 是 null。
請求訊息已經由實例發送 HttpClient 了。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
僅限 .NET 框架:請求已逾時。
僅 .NET Core 及 .NET 5 及以後版本:因逾時而請求失敗。
備註
這個操作不會阻擋。 根據參數 completionOption 值的不同,回傳 Task<TResult> 的物件會在回應可用或完整回應(包含內容)被讀取時立即完成。
Note
若逾時,會對不同的 .NET 實作拋出不同的例外。
- HttpRequestException 會被丟在所有適用的 .NET Framework 版本上。
- OperationCanceledException 在所有適用的 .NET Core 版本中,且無任何內部例外。
- OperationCanceledException 巢狀的 TimeoutException 會丟.NET 5 及以後版本。
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Send(HttpRequestMessage, HttpCompletionOption)拋出的例外。
適用於
SendAsync(HttpRequestMessage, CancellationToken)
以非同步操作方式發送 HTTP 請求。
public:
override System::Threading::Tasks::Task<System::Net::Http::HttpResponseMessage ^> ^ SendAsync(System::Net::Http::HttpRequestMessage ^ request, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken);
override this.SendAsync : System.Net.Http.HttpRequestMessage * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>
Public Overrides Function SendAsync (request As HttpRequestMessage, cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
參數
- request
- HttpRequestMessage
HTTP 請求訊息要發送。
- cancellationToken
- CancellationToken
取消令牌用於取消操作。
傳回
表示異步操作的工作物件。
例外狀況
request 是 null。
請求訊息已經由實例發送 HttpClient 了。
請求失敗是因為無法取得有效的 HTTP 回應,例如網路連線失敗、DNS 故障、伺服器憑證驗證錯誤或伺服器回應無效。 在 .NET 8 及以後版本中,原因以 HttpRequestError 表示
-或-
僅限 .NET 框架:請求已逾時。
備註
這個操作不會阻擋。 回傳 Task<TResult> 物件在完整回應(包括內容)被讀取後才會完成。 行為與明確指定相同 ResponseContentRead 。
Note
若逾時,會對不同的 .NET 實作拋出不同的例外。
- HttpRequestException 會被丟在所有適用的 .NET Framework 版本上。
- OperationCanceledException 在所有適用的 .NET Core 版本中,且無任何內部例外。
- OperationCanceledException 巢狀的 TimeoutException 會丟.NET 5 及以後版本。
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Send(HttpRequestMessage)拋出的例外。