HttpClient 类

定义

提供一个类,用于从 URI 标识的资源发送 HTTP 请求和接收 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, Boolean)

使用提供的处理程序初始化类的新实例 HttpClient ,并指定释放此实例时是否应释放该处理程序。

HttpClient(HttpMessageHandler)

使用指定的处理程序初始化类的新实例 HttpClient 。 释放此实例时,将释放处理程序。

属性

名称 说明
BaseAddress

获取或设置发送请求时使用的 Internet 资源的统一资源标识符(URI)的基址。

DefaultProxy

获取或设置全局 HTTP 代理。

DefaultRequestHeaders

获取应随每个请求一起发送的标头。

DefaultRequestVersion

获取或设置此 HttpClient 实例后续请求上使用的默认 HTTP 版本。

DefaultVersionPolicy

获取或设置隐式创建请求的默认版本策略,例如 GetAsync(String) ,以及 PostAsync(String, HttpContent)

MaxResponseContentBufferSize

获取或设置读取响应内容时要缓冲的最大字节数。

Timeout

获取或设置在请求超时之前要等待的时间跨度。

方法

名称 说明
CancelPendingRequests()

取消此实例上所有挂起的请求。

DeleteAsync(String, CancellationToken)

将 DELETE 请求作为异步操作发送到具有取消令牌的指定 URI。

DeleteAsync(String)

将 DELETE 请求作为异步操作发送到指定的 URI。

DeleteAsync(Uri, CancellationToken)

将 DELETE 请求作为异步操作发送到具有取消令牌的指定 URI。

DeleteAsync(Uri)

将 DELETE 请求作为异步操作发送到指定的 URI。

Dispose()

释放非托管资源并释放由该 HttpMessageInvoker资源使用的托管资源。

(继承自 HttpMessageInvoker)
Dispose(Boolean)

释放托管资源(可选)使用 HttpClient 的非托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetAsync(String, CancellationToken)

将 GET 请求作为异步操作发送到具有取消令牌的指定 URI。

GetAsync(String, HttpCompletionOption, CancellationToken)

使用 HTTP 完成选项和取消令牌作为异步操作将 GET 请求发送到指定的 URI。

GetAsync(String, HttpCompletionOption)

使用 HTTP 完成选项作为异步操作将 GET 请求发送到指定的 URI。

GetAsync(String)

将 GET 请求作为异步操作发送到指定的 URI。

GetAsync(Uri, CancellationToken)

将 GET 请求作为异步操作发送到具有取消令牌的指定 URI。

GetAsync(Uri, HttpCompletionOption, CancellationToken)

使用 HTTP 完成选项和取消令牌作为异步操作将 GET 请求发送到指定的 URI。

GetAsync(Uri, HttpCompletionOption)

使用 HTTP 完成选项作为异步操作将 GET 请求发送到指定的 URI。

GetAsync(Uri)

将 GET 请求作为异步操作发送到指定的 URI。

GetByteArrayAsync(String, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以字节数组的形式返回响应正文。

GetByteArrayAsync(String)

将 GET 请求发送到指定的 URI,并在异步操作中以字节数组的形式返回响应正文。

GetByteArrayAsync(Uri, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以字节数组的形式返回响应正文。

GetByteArrayAsync(Uri)

将 GET 请求发送到指定的 URI,并在异步操作中以字节数组的形式返回响应正文。

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetStreamAsync(String, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以流的形式返回响应正文。

GetStreamAsync(String)

将 GET 请求发送到指定的 URI,并在异步操作中以流的形式返回响应正文。

GetStreamAsync(Uri, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以流的形式返回响应正文。

GetStreamAsync(Uri)

将 GET 请求发送到指定的 URI,并在异步操作中以流的形式返回响应正文。

GetStringAsync(String, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以字符串的形式返回响应正文。

GetStringAsync(String)

将 GET 请求发送到指定的 URI,并在异步操作中以字符串的形式返回响应正文。

GetStringAsync(Uri, CancellationToken)

将 GET 请求发送到指定的 URI,并在异步操作中以字符串的形式返回响应正文。

GetStringAsync(Uri)

将 GET 请求发送到指定的 URI,并在异步操作中以字符串的形式返回响应正文。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
PatchAsync(String, HttpContent, CancellationToken)

使用取消令牌将 PATCH 请求发送到以字符串表示为异步操作的 URI。

PatchAsync(String, HttpContent)

将 PATCH 请求发送到指定为字符串作为异步操作的 URI。

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)

扩展方法

名称 说明
DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken)

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

DeleteFromJsonAsync<TValue>(HttpClient, String, 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, Uri, CancellationToken)

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 的结果的值。

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

将 DELETE 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 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)

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

GetFromJsonAsync<TValue>(HttpClient, String, 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, Uri, CancellationToken)

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 GET 请求发送到指定的 Uri,并返回在异步操作中将响应正文反序列化为 JSON 产生的值。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PATCH 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 POST 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

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

将 PUT 请求发送到在请求正文中包含序列化为 JSON 的 value 指定 URI。

适用于

另请参阅