RESTCLIENT.NET
菜单
中文
↗ GitHub

RESTCLIENT.NET / API REFERENCE

HTTP 方法

RestClient.Net 为 HttpClient 的所有标准 HTTP 方法提供类型安全的扩展方法。

GET 请求

从服务器获取数据。

var result = await httpClient.GetAsync(
    url: "https://api.example.com/posts/1".ToAbsoluteUrl(),
    deserializeSuccess: DeserializePost,
    deserializeError: DeserializeError
);

参数

参数 类型 描述
url AbsoluteUrl 端点 URL(使用 .ToAbsoluteUrl() 扩展)
deserializeSuccess Func<HttpResponseMessage, Task<T>> 成功响应的反序列化器
deserializeError Func<HttpResponseMessage, Task<TError>> 错误响应的反序列化器
cancellationToken CancellationToken 可选的取消令牌

POST 请求

发送数据以创建新资源。

var result = await httpClient.PostAsync(
    url: "https://api.example.com/posts".ToAbsoluteUrl(),
    body: new CreatePostRequest("Title", "Body"),
    serializeBody: SerializeRequest,
    deserializeSuccess: DeserializePost,
    deserializeError: DeserializeError
);

参数

参数 类型 描述
url AbsoluteUrl 端点 URL
body TBody 请求体对象
serializeBody Func<TBody, HttpContent> 请求体序列化器
deserializeSuccess Func<HttpResponseMessage, Task<T>> 成功响应的反序列化器
deserializeError Func<HttpResponseMessage, Task<TError>> 错误响应的反序列化器

PUT 请求

完全替换现有资源。

var result = await httpClient.PutAsync(
    url: "https://api.example.com/posts/1".ToAbsoluteUrl(),
    body: new UpdatePostRequest(1, "New Title", "New Body"),
    serializeBody: SerializeRequest,
    deserializeSuccess: DeserializePost,
    deserializeError: DeserializeError
);

PATCH 请求

部分更新现有资源。

var result = await httpClient.PatchAsync(
    url: "https://api.example.com/posts/1".ToAbsoluteUrl(),
    body: new PatchPostRequest { Title = "Updated Title" },
    serializeBody: SerializeRequest,
    deserializeSuccess: DeserializePost,
    deserializeError: DeserializeError
);

DELETE 请求

删除资源。

var result = await httpClient.DeleteAsync(
    url: "https://api.example.com/posts/1".ToAbsoluteUrl(),
    deserializeSuccess: DeserializeDeleteResponse,
    deserializeError: DeserializeError
);

常见模式

添加请求头

httpClient.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", token);

var result = await httpClient.GetAsync(...);

使用 IHttpClientFactory

// 在 Startup.cs / Program.cs 中
services.AddHttpClient("api", client =>
{
    client.BaseAddress = new Uri("https://api.example.com");
    client.DefaultRequestHeaders.Add("Accept", "application/json");
});

// 在你的服务中
var httpClient = httpClientFactory.CreateClient("api");
var result = await httpClient.GetAsync(...);

返回类型

所有方法都返回 Result<TSuccess, HttpError<TError>>。有关处理响应的详细信息,请参阅 Result 类型。