HttpClient.SendRequestAsync 方法

定義

多載

SendRequestAsync(HttpRequestMessage)

以非同步作業的方式,傳送 HTTP 要求。 如需 HttpClient 類別的程式設計指引和程式碼範例,請參閱 HttpClient 概念性主題。

SendRequestAsync(HttpRequestMessage, HttpCompletionOption)

以 HTTP 完成選項作為非同步作業傳送 HTTP 要求。 如需 HttpClient 類別的程式設計指引和程式碼範例,請參閱 HttpClient 概念性主題。

SendRequestAsync(HttpRequestMessage)

以非同步作業的方式,傳送 HTTP 要求。 如需 HttpClient 類別的程式設計指引和程式碼範例,請參閱 HttpClient 概念性主題。

public:
 virtual IAsyncOperationWithProgress<HttpResponseMessage ^, HttpProgress> ^ SendRequestAsync(HttpRequestMessage ^ request) = SendRequestAsync;
/// [Windows.Foundation.Metadata.Overload("SendRequestAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<HttpResponseMessage, HttpProgress> SendRequestAsync(HttpRequestMessage const& request);
[Windows.Foundation.Metadata.Overload("SendRequestAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<HttpResponseMessage,HttpProgress> SendRequestAsync(HttpRequestMessage request);
function sendRequestAsync(request)
Public Function SendRequestAsync (request As HttpRequestMessage) As IAsyncOperationWithProgress(Of HttpResponseMessage, HttpProgress)

參數

request
HttpRequestMessage

要傳送的 HTTP 要求訊息。

傳回

表示非同步作業的 物件。

屬性

備註

這項作業不會封鎖。 傳回的 IAsyncOperationWithProgress (HttpResponseMessageHttpProgress) 會在讀取整個回應 (之後完成,包括內容) 。

要求參數中傳遞的HttpRequestMessage可讓 SendRequestAsync 方法設定要求訊息上的標頭,以及在要傳送的 HTTP 內容上設定標頭。 相反地, PostAsyncPutAsync 方法只允許設定一組有限的 HTTP 內容標頭。

以下是此函式擲回的例外狀況。

E_ILLEGAL_METHOD_CALL

要求訊息已經由 HttpClient 實例傳送。

例外狀況處理

呼叫此方法時,您必須撰寫程式碼來處理例外狀況。 例外狀況可能是因為參數驗證錯誤、名稱解析失敗和網路錯誤所造成。 網路錯誤 (連線中斷、連線失敗和 HTTP 伺服器失敗的例外狀況,例如,隨時可能會發生) 。 這些錯誤會造成擲出例外狀況。 如果應用程式未處理,例外狀況可能會導致整個應用程式由執行時間終止。 如需如何處理例外狀況的詳細資訊,請參閱 處理網路應用程式中的例外 狀況 和如何:對應 HRESULT 和例外狀況

另請參閱

適用於

SendRequestAsync(HttpRequestMessage, HttpCompletionOption)

以 HTTP 完成選項作為非同步作業傳送 HTTP 要求。 如需 HttpClient 類別的程式設計指引和程式碼範例,請參閱 HttpClient 概念性主題。

public:
 virtual IAsyncOperationWithProgress<HttpResponseMessage ^, HttpProgress> ^ SendRequestAsync(HttpRequestMessage ^ request, HttpCompletionOption completionOption) = SendRequestAsync;
/// [Windows.Foundation.Metadata.Overload("SendRequestWithOptionAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<HttpResponseMessage, HttpProgress> SendRequestAsync(HttpRequestMessage const& request, HttpCompletionOption const& completionOption);
[Windows.Foundation.Metadata.Overload("SendRequestWithOptionAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<HttpResponseMessage,HttpProgress> SendRequestAsync(HttpRequestMessage request, HttpCompletionOption completionOption);
function sendRequestAsync(request, completionOption)
Public Function SendRequestAsync (request As HttpRequestMessage, completionOption As HttpCompletionOption) As IAsyncOperationWithProgress(Of HttpResponseMessage, HttpProgress)

參數

request
HttpRequestMessage

要傳送的 HTTP 要求訊息。

completionOption
HttpCompletionOption

值,指出當讀取所有回應時,或唯讀取標頭時, 是否將 HttpClient 作業視為已完成。

傳回

表示非同步作業的 物件。

屬性

備註

這項作業不會封鎖。 傳回的 IAsyncOperationWithProgress (HttpResponseMessageHttpProgress) 會根據 completionOption 參數的值來完成。

要求參數中傳遞的HttpRequestMessage可讓 SendRequestAsync 方法設定要求訊息上的標頭,以及在要傳送的 HTTP 內容上設定標頭。 相反地, PostAsyncPutAsync 方法只允許設定一組有限的 HTTP 內容標頭。

以下是此函式擲回的例外狀況。

E_ILLEGAL_METHOD_CALL

要求訊息已經由 HttpClient 實例傳送。

例外狀況處理

呼叫此方法時,您必須撰寫程式碼來處理例外狀況。 例外狀況可能是因為參數驗證錯誤、名稱解析失敗和網路錯誤所造成。 網路錯誤 (連線中斷、連線失敗和 HTTP 伺服器失敗的例外狀況,例如,隨時可能會發生) 。 這些錯誤會造成擲出例外狀況。 如果應用程式未處理,例外狀況可能會導致整個應用程式由執行時間終止。 如需如何處理例外狀況的詳細資訊,請參閱 處理網路應用程式中的例外 狀況 和如何:對應 HRESULT 和例外狀況

另請參閱

適用於