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 備註

建構函式

HttpClient()

使用當處置此執行個體時會處置的 HttpClientHandler 來初始化 HttpClient 類別的新執行個體。

HttpClient(HttpMessageHandler)

使用指定的處理常式初始化 HttpClient 類別的新執行個體。 當處置此執行個體時會處置該處理常式。

HttpClient(HttpMessageHandler, Boolean)

使用提供的處理常式初始化 HttpClient 類別的新執行個體,並指定當處置此執行個體時是否應該處置該處理常式。

屬性

BaseAddress

取得或設定傳送要求時所使用之網際網路資源的統一資源識別元 (URI) 基底位址。

DefaultProxy

取得或設定全域 HTTP Proxy。

DefaultRequestHeaders

取得應該在每個要求中傳送的標頭。

DefaultRequestVersion

取得或設定用於這個 HttpClient 執行個體所提出後續要求的預設 HTTP 版本。

DefaultVersionPolicy

取得或設定透過便利方法以隱含方式所建立要求的預設版本原則,例如 GetAsync(String)PostAsync(String, HttpContent)

MaxResponseContentBufferSize

取得或設定讀取回應內容時要緩衝處理的位元組數目上限。

Timeout

取得或設定要求逾時前等候的時間長度。

方法

CancelPendingRequests()

取消這個執行個體上的所有暫止要求。

DeleteAsync(String)

以非同步作業的方式,將 DELETE 要求傳送至指定的 URI。

DeleteAsync(String, CancellationToken)

以非同步作業的方式,傳送 DELETE 要求和取消權杖至指定的 Uri。

DeleteAsync(Uri)

以非同步作業的方式,將 DELETE 要求傳送至指定的 URI。

DeleteAsync(Uri, CancellationToken)

以非同步作業的方式,傳送 DELETE 要求和取消權杖至指定的 Uri。

Dispose()

釋放 Unmanaged 資源,並處置 HttpMessageInvoker 所使用的 Managed 資源。

(繼承來源 HttpMessageInvoker)
Dispose(Boolean)

釋放 HttpClient 所使用的 Unmanaged 資源,並選擇性處置 Managed 資源。

Equals(Object)

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

(繼承來源 Object)
GetAsync(String)

以非同步作業的方式,將 GET 要求傳送至指定的 URI。

GetAsync(String, CancellationToken)

以非同步作業的方式,傳送 GET 要求和取消權杖至指定的 Uri。

GetAsync(String, HttpCompletionOption)

以非同步作業的方式,傳送 GET 要求和 HTTP 完成選項至指定的 Uri。

GetAsync(String, HttpCompletionOption, CancellationToken)

以非同步作業的方式,傳送 GET 要求和 HTTP 完成選項以及取消語彙基元至指定的 Uri。

GetAsync(Uri)

以非同步作業的方式,將 GET 要求傳送至指定的 URI。

GetAsync(Uri, CancellationToken)

以非同步作業的方式,傳送 GET 要求和取消權杖至指定的 Uri。

GetAsync(Uri, HttpCompletionOption)

以非同步作業的方式,傳送 GET 要求和 HTTP 完成選項至指定的 Uri。

GetAsync(Uri, HttpCompletionOption, CancellationToken)

以非同步作業的方式,傳送 GET 要求和 HTTP 完成選項以及取消語彙基元至指定的 Uri。

GetByteArrayAsync(String)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以位元組陣列形式傳回回應主體。

GetByteArrayAsync(String, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以位元組陣列形式傳回回應主體。

GetByteArrayAsync(Uri)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以位元組陣列形式傳回回應內容。

GetByteArrayAsync(Uri, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以位元組陣列形式傳回回應內容。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetStreamAsync(String)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以資料流形式傳回回應內容。

GetStreamAsync(String, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以資料流形式傳回回應內容。

GetStreamAsync(Uri)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以資料流形式傳回回應內容。

GetStreamAsync(Uri, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以資料流形式傳回回應內容。

GetStringAsync(String)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以字串形式傳回回應內容。

GetStringAsync(String, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以字串形式傳回回應內容。

GetStringAsync(Uri)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以字串形式傳回回應內容。

GetStringAsync(Uri, CancellationToken)

將 GET 要求傳送至指定的 URI,並透過非同步作業,以字串形式傳回回應內容。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

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

以非同步作業的方式,將 PATCH 要求傳送至指定為字串的 URI。

PatchAsync(String, HttpContent, CancellationToken)

以非同步作業的方式,將 PATCH 要求和取消權杖傳送至以字串表示的 URI。

PatchAsync(Uri, HttpContent)

以非同步作業的方式傳送 PATCH 要求。

PatchAsync(Uri, HttpContent, CancellationToken)

以非同步作業的方式,傳送 PATCH 要求和取消語彙基元。

PostAsync(String, HttpContent)

以非同步作業的方式,將 POST 要求傳送至指定的 URI。

PostAsync(String, HttpContent, CancellationToken)

以非同步作業的方式,傳送 POST 要求和取消語彙基元。

PostAsync(Uri, HttpContent)

以非同步作業的方式,將 POST 要求傳送至指定的 URI。

PostAsync(Uri, HttpContent, CancellationToken)

以非同步作業的方式,傳送 POST 要求和取消語彙基元。

PutAsync(String, HttpContent)

以非同步作業的方式,將 PUT 要求傳送至指定的 URI。

PutAsync(String, HttpContent, CancellationToken)

以非同步作業的方式,傳送 PUT 要求和取消語彙基元。

PutAsync(Uri, HttpContent)

以非同步作業的方式,將 PUT 要求傳送至指定的 URI。

PutAsync(Uri, HttpContent, CancellationToken)

以非同步作業的方式,傳送 PUT 要求和取消語彙基元。

Send(HttpRequestMessage)

使用指定的要求傳送 HTTP 要求。

Send(HttpRequestMessage, CancellationToken)

使用指定的要求和取消權杖來傳送 HTTP 要求。

Send(HttpRequestMessage, CancellationToken)

使用指定的要求和取消權杖來傳送 HTTP 要求。

(繼承來源 HttpMessageInvoker)
Send(HttpRequestMessage, HttpCompletionOption)

傳送 HTTP 要求。

Send(HttpRequestMessage, HttpCompletionOption, CancellationToken)

使用指定的要求和取消權杖來傳送 HTTP 要求。

SendAsync(HttpRequestMessage)

以非同步作業的方式,傳送 HTTP 要求。

SendAsync(HttpRequestMessage, CancellationToken)

以非同步作業的方式,傳送 HTTP 要求。

SendAsync(HttpRequestMessage, HttpCompletionOption)

以非同步作業的方式,傳送 HTTP 要求。

SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken)

以非同步作業的方式,傳送 HTTP 要求。

ToString()

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

(繼承來源 Object)

擴充方法

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken)

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

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

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 JSON 所產生的值。

DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

將 DELETE 要求傳送至指定的 Uri,並傳回在異步操作中將回應本文還原串行化為 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, String, 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 所產生的值。

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, CancellationToken)

HTTP GET將要求傳送至指定的 requestUri ,並傳回在異步可列舉作業中將響應主體還原串行化為 JSON 所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

GetFromJsonAsync(HttpClient, String, Type, CancellationToken)

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

將 GET 要求傳送至指定的 URI,並傳回在非同步作業中,將回應主體作為 JSON 還原序列化後所產生的值。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 PATCH 要求傳送至指定的 URI, value 其中包含在要求本文中串行化為 JSON 的 URI。

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 POST 要求傳送至指定的 URI,其中要求本文包含序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

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

將 PUT 要求傳送至指定的 URI,其中包含在要求主體中序列化為 JSON 的 value

適用於

另請參閱