HttpClient.SendAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以非同步作業的方式,傳送 HTTP 要求。
多載
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 執行個體傳送。
要求已因基本問題 (例如網路連線、DNS 失敗、伺服器憑證驗證或逾時) 而失敗。
僅限 .NET Core 和 .NET 5 和更新版本:要求因逾時而失敗。
取消標記已取消。 此例外狀況會儲存在傳回的工作中。
備註
這項作業不會封鎖。 根據 參數的值 completionOption
,傳回 Task<TResult> 的物件會在回應可用或包含內容的整個回應時立即完成。
注意
如果逾時,不同的 .NET 實作會擲回不同的例外狀況。
- HttpRequestException會在所有適用的 .NET Framework 版本上擲回。
- TaskCanceledException 所有適用的 .NET Core 版本都會擲回沒有任何內部例外狀況。
- TaskCanceledExceptionTimeoutException,會在 .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 執行個體傳送。
要求已因基本問題 (例如網路連線、DNS 失敗、伺服器憑證驗證或逾時) 而失敗。
僅限 .NET Core 和 .NET 5 和更新版本:要求因逾時而失敗。
備註
這項作業不會封鎖。 傳回 Task<TResult> 的物件會在讀取包含內容的整個回應之後完成。 行為與明確指定的行為相同 ResponseContentRead 。
注意
如果逾時,不同的 .NET 實作會擲回不同的例外狀況。
- HttpRequestException會在所有適用的 .NET Framework 版本上擲回。
- TaskCanceledException 所有適用的 .NET Core 版本都會擲回沒有任何內部例外狀況。
- TaskCanceledExceptionTimeoutException,會在 .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 執行個體傳送。
要求已因基本問題 (例如網路連線、DNS 失敗、伺服器憑證驗證或逾時) 而失敗。
僅限 .NET Core 和 .NET 5 和更新版本:要求因逾時而失敗。
備註
這項作業不會封鎖。 根據 參數的值 completionOption
,傳回 Task<TResult> 的物件會在回應可用或包含內容的整個回應時立即完成。
注意
如果逾時,不同的 .NET 實作會擲回不同的例外狀況。
- HttpRequestException會在所有適用的 .NET Framework 版本上擲回。
- TaskCanceledException 所有適用的 .NET Core 版本都會擲回沒有任何內部例外狀況。
- TaskCanceledExceptionTimeoutException,會在 .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 執行個體傳送。
要求已因基本問題 (例如網路連線、DNS 失敗、伺服器憑證驗證或逾時) 而失敗。
僅限 .NET Core 和 .NET 5 和更新版本:要求因逾時而失敗。
取消標記已取消。 此例外狀況會儲存在傳回的工作中。
備註
這項作業不會封鎖。 傳回 Task<TResult> 的物件會在讀取包含內容的整個回應之後完成。 行為與明確指定的行為相同 ResponseContentRead 。
注意
如果逾時,不同的 .NET 實作會擲回不同的例外狀況。
- HttpRequestException會在所有適用的 .NET Framework 版本上擲回。
- TaskCanceledException 所有適用的 .NET Core 版本都會擲回沒有任何內部例外狀況。
- TaskCanceledExceptionTimeoutException,會在 .NET 5 和更新版本上擲回 巢狀 。
這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Send(HttpRequestMessage)例外狀況。