HttpClient 類別

定義

提供一個類別,用於發送 HTTP 請求及接收由 URI 識別的資源的 HTTP 回應。

public ref class HttpClient : System::Net::Http::HttpMessageInvoker
public class HttpClient : System.Net.Http.HttpMessageInvoker
type HttpClient = class
    inherit HttpMessageInvoker
Public Class HttpClient
Inherits HttpMessageInvoker
繼承

範例

// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();

static async Task Main()
{
    // Call asynchronous network methods in a try/catch block to handle exceptions.
    try
    {
        using HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
        response.EnsureSuccessStatusCode();
        string responseBody = await response.Content.ReadAsStringAsync();
        // Above three lines can be replaced with new helper method below
        // string responseBody = await client.GetStringAsync(uri);

        Console.WriteLine(responseBody);
    }
    catch (HttpRequestException e)
    {
        Console.WriteLine("\nException Caught!");
        Console.WriteLine("Message :{0} ", e.Message);
    }
}
open System.Net.Http

// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
let client = new HttpClient()

let main =
    task {
        // Call asynchronous network methods in a try/catch block to handle exceptions.
        try
            use! response = client.GetAsync "http://www.contoso.com/"
            response.EnsureSuccessStatusCode() |> ignore
            let! responseBody = response.Content.ReadAsStringAsync()
            // Above three lines can be replaced with new helper method below
            // let! responseBody = client.GetStringAsync uri

            printfn $"{responseBody}"
        with
        | :? HttpRequestException as e ->
            printfn "\nException Caught!"
            printfn $"Message :{e.Message} "
    }

main.Wait()
' HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
Shared ReadOnly client As HttpClient = New HttpClient()

Private Shared Async Function Main() As Task
    ' Call asynchronous network methods in a try/catch block to handle exceptions.
    Try
        Using response As HttpResponseMessage = Await client.GetAsync("http://www.contoso.com/")
            response.EnsureSuccessStatusCode()
            Dim responseBody As String = Await response.Content.ReadAsStringAsync()
            ' Above three lines can be replaced with new helper method below
            ' Dim responseBody As String = Await client.GetStringAsync(uri)

            Console.WriteLine(responseBody)
        End Using
    Catch e As HttpRequestException
        Console.WriteLine(Environment.NewLine & "Exception Caught!")
        Console.WriteLine("Message :{0} ", e.Message)
    End Try
End Function

備註

欲了解更多關於此 API 的資訊,請參閱 HttpClient 的補充 API 備註

建構函式

名稱 Description
HttpClient()

使用HttpClientHandler當該實例被處置時,初始化類別的新實例HttpClient

HttpClient(HttpMessageHandler, Boolean)

初始化該類別的新實例 HttpClient ,並指定該處理器在處理時是否應被丟棄。

HttpClient(HttpMessageHandler)

初始化一個新的類別實例 HttpClient ,使用指定的處理器。 當該實例被處理時,處理者即被處置。

屬性

名稱 Description
BaseAddress

取得或設定用於發送請求時所使用的網際網路資源的統一資源識別碼(URI)的基底位址。

DefaultProxy

取得或設定全域 HTTP Proxy。

DefaultRequestHeaders

它會取得每個請求都應該傳送的標頭。

DefaultRequestVersion

取得或設定此實例後續請求 HttpClient 所使用的預設 HTTP 版本。

DefaultVersionPolicy

取得或設定便利方法中隱含產生請求的預設版本政策, GetAsync(String)PostAsync(String, HttpContent)例如。

MaxResponseContentBufferSize

讀取回應內容時,會取得或設定最大緩衝位元組數。

Timeout

它會設定等待時間跨度,直到請求逾時。

方法

名稱 Description
CancelPendingRequests()

取消此實例上所有待處理的請求。

DeleteAsync(String, CancellationToken)

以非同步操作向指定的 URI 發送 DELETE 請求,並使用取消權杖。

DeleteAsync(String)

以非同步操作方式向指定的 URI 發送 DELETE 請求。

DeleteAsync(Uri, CancellationToken)

以非同步操作向指定的 URI 發送 DELETE 請求,並使用取消權杖。

DeleteAsync(Uri)

以非同步操作方式向指定的 URI 發送 DELETE 請求。

Dispose()

釋放未管理的資源並處理由 HttpMessageInvoker.

(繼承來源 HttpMessageInvoker)
Dispose(Boolean)

釋放未管理的資源, HttpClient 並可選擇性地處置這些受管理資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetAsync(String, CancellationToken)

以非同步操作向指定的 URI 發送 GET 請求,並使用取消權杖。

GetAsync(String, HttpCompletionOption, CancellationToken)

以非同步操作方式向指定的 URI 發送 GET 請求,並附有 HTTP 完成選項及取消權杖。

GetAsync(String, HttpCompletionOption)

以非同步操作方式向指定的 URI 發送 GET 請求,並附有 HTTP 完成選項。

GetAsync(String)

以非同步操作方式向指定的 URI 發送 GET 請求。

GetAsync(Uri, CancellationToken)

以非同步操作向指定的 URI 發送 GET 請求,並使用取消權杖。

GetAsync(Uri, HttpCompletionOption, CancellationToken)

以非同步操作方式向指定的 URI 發送 GET 請求,並附有 HTTP 完成選項及取消權杖。

GetAsync(Uri, HttpCompletionOption)

以非同步操作方式向指定的 URI 發送 GET 請求,並附有 HTTP 完成選項。

GetAsync(Uri)

以非同步操作方式向指定的 URI 發送 GET 請求。

GetByteArrayAsync(String, CancellationToken)

發送 GET 請求至指定的 URI,並以非同步操作回傳回應實體為位元組陣列。

GetByteArrayAsync(String)

發送 GET 請求至指定的 URI,並以非同步操作回傳回應實體為位元組陣列。

GetByteArrayAsync(Uri, CancellationToken)

向指定的 URI 發送 GET 請求,並以非同步操作將回應實體以位元組陣列形式回傳。

GetByteArrayAsync(Uri)

向指定的 URI 發送 GET 請求,並以非同步操作將回應實體以位元組陣列形式回傳。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetStreamAsync(String, CancellationToken)

向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。

GetStreamAsync(String)

向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。

GetStreamAsync(Uri, CancellationToken)

向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。

GetStreamAsync(Uri)

向指定的 URI 發送 GET 請求,並以非同步操作的方式將回應實體以串流形式回傳。

GetStringAsync(String, CancellationToken)

向指定的 URI 發送 GET 請求,並以非同步操作的方式回傳回應實體的字串。

GetStringAsync(String)

向指定的 URI 發送 GET 請求,並以非同步操作的方式回傳回應實體的字串。

GetStringAsync(Uri, CancellationToken)

向指定的 URI 發送 GET 請求,並以非同步操作的方式回傳回應實體的字串。

GetStringAsync(Uri)

向指定的 URI 發送 GET 請求,並以非同步操作的方式回傳回應實體的字串。

GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
PatchAsync(String, HttpContent, CancellationToken)

以非同步操作方式向以字串表示的 URI 發送 PATCH 請求並附帶取消標記。

PatchAsync(String, HttpContent)

以非同步操作方式向指定為字串的 URI 發送 PATCH 請求。

PatchAsync(Uri, HttpContent, CancellationToken)

以非同步操作發送帶有取消權杖的 PATCH 請求。

PatchAsync(Uri, HttpContent)

以非同步操作方式發送 PATCH 請求。

PostAsync(String, HttpContent, CancellationToken)

以非同步操作發送帶有取消權杖的 POST 請求。

PostAsync(String, HttpContent)

將 POST 請求以非同步操作方式傳送給指定的 URI。

PostAsync(Uri, HttpContent, CancellationToken)

以非同步操作發送帶有取消權杖的 POST 請求。

PostAsync(Uri, HttpContent)

將 POST 請求以非同步操作方式傳送給指定的 URI。

PutAsync(String, HttpContent, CancellationToken)

以非同步操作發送帶有取消權杖的 PUT 請求。

PutAsync(String, HttpContent)

將 PUT 請求傳送給指定的 URI,作為非同步操作。

PutAsync(Uri, HttpContent, CancellationToken)

以非同步操作發送帶有取消權杖的 PUT 請求。

PutAsync(Uri, HttpContent)

將 PUT 請求傳送給指定的 URI,作為非同步操作。

Send(HttpRequestMessage, CancellationToken)

發送帶有指定請求與取消權杖的 HTTP 請求。

Send(HttpRequestMessage, HttpCompletionOption, CancellationToken)

發送包含指定請求、完成選項及取消標記的 HTTP 請求。

Send(HttpRequestMessage, HttpCompletionOption)

發送 HTTP 請求。

Send(HttpRequestMessage)

發送包含指定請求的 HTTP 請求。

SendAsync(HttpRequestMessage, CancellationToken)

以非同步操作方式發送 HTTP 請求。

SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken)

以非同步操作方式發送 HTTP 請求。

SendAsync(HttpRequestMessage, HttpCompletionOption)

以非同步操作方式發送 HTTP 請求。

SendAsync(HttpRequestMessage)

以非同步操作方式發送 HTTP 請求。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

擴充方法

名稱 Description
DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

向指定的 Uri 發送 DELETE 請求,並回傳將回應實體反序列化為 JSON 後產生的非同步運算所得值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, CancellationToken)

HTTP GET指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

HTTP GET 指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

HTTP GET指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, CancellationToken)

HTTP GET指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

HTTP GET指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

HTTP GET指定 requestUri 單位發送請求,並回傳透過非同步可枚舉操作將回應主體反序列化為 JSON 所產生的值。

GetFromJsonAsync(HttpClient, String, Type, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

GetFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

向指定的 Uri 發送 GET 請求,並回傳將回應實體反序列化為 JSON 非同步操作所產生的值。

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 PATCH 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 POST 請求,並包含 value 請求主體中序列化為 JSON 的 JSON。

PutAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

向指定的 URI 發送 PUT 請求,並包含 value 請求主體中序列化為 JSON 的 URI。

適用於

另請參閱