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)

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

HttpClient(HttpMessageHandler, Boolean)

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

属性

BaseAddress

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

DefaultProxy

获取或设置全局 HTTP 代理。

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()

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

(继承自 HttpMessageInvoker)
Dispose(Boolean)

释放由 HttpClient 使用的非托管资源,并可根据需要释放托管资源。

Equals(Object)

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

(继承自 Object)
GetAsync(String)

以异步操作将 GET 请求发送给指定 URI。

GetAsync(String, CancellationToken)

用以异步操作的取消标记发送 GET 请求到指定的 URI。

GetAsync(String, HttpCompletionOption)

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

GetAsync(String, HttpCompletionOption, CancellationToken)

用以异步操作的 HTTP 完成选项和取消标记发送 GET 请求到指定的 URI。

GetAsync(Uri)

以异步操作将 GET 请求发送给指定 URI。

GetAsync(Uri, CancellationToken)

用以异步操作的取消标记发送 GET 请求到指定的 URI。

GetAsync(Uri, HttpCompletionOption)

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

GetAsync(Uri, HttpCompletionOption, CancellationToken)

用以异步操作的 HTTP 完成选项和取消标记发送 GET 请求到指定的 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 请求发送到包含请求正文中序列化为 JSON 的指定 URI value

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

适用于

另请参阅