在.NET开发中,使用HttpClient调用ASP.NET Web API是最常用的服务间通信方式之一。通过HttpClient,我们可以向Web API发送GET、POST等请求,并接收JSON或XML格式的数据。下面直接说明具体实现方法。

创建HttpClient实例
推荐将HttpClient作为静态单例或借助IHttpClientFactory使用,避免频繁创建导致端口耗尽。以下为简单示例:
using System;
using System.Net.Http;
class Program
{
// 静态实例,避免重复创建
private static readonly HttpClient client = new HttpClient();
static void Main()
{
client.BaseAddress = new Uri("https://ipipp.com/api/");
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
Console.WriteLine("HttpClient已初始化");
}
}
发送GET请求获取资料
调用ASP.NET Web API的GET接口并解析返回的JSON,可以使用HttpClient的GetAsync方法:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Demo
{
private static readonly HttpClient client = new HttpClient();
static async Task GetDataAsync()
{
// 调用Web API的values接口
HttpResponseMessage resp = await client.GetAsync("https://ipipp.com/api/values");
if (resp.IsSuccessStatusCode)
{
string json = await resp.Content.ReadAsStringAsync();
Console.WriteLine(json);
}
}
}
使用POST提交数据
向Web API提交数据时,通常将对象序列化为JSON,再放入请求体。下面演示POST调用:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class PostDemo
{
private static readonly HttpClient client = new HttpClient();
static async Task PostDataAsync()
{
var data = new { Name = "测试", Age = 20 };
string json = System.Text.Json.JsonSerializer.Serialize(data);
// 注意Content-Type设置为application/json
HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage resp = await client.PostAsync("https://ipipp.com/api/users", content);
Console.WriteLine(resp.StatusCode);
}
}
常见注意事项
- 不要为每个请求都new HttpClient,应使用单例或工厂模式
- 设置合理的超时时间:client.Timeout = TimeSpan.FromSeconds(30);
- 在ASP.NET Web API端,确保路由和HTTP动词正确匹配
- 使用
HttpResponseMessage判断IsSuccessStatusCode再做解析
小结
通过HttpClient调用ASP.NET Web API并不复杂,核心在于正确构造请求、处理响应与异常。掌握上述GET与POST写法,就能满足大部分后端接口对接需求。
HttpClientASP.NET_Web_APIRESTJSONCSharp修改时间:2026-07-24 19:36:18