c# httpclient
时间: 2025-01-14 15:06:29 浏览: 34
### C# 中 HttpClient 的基本用法
HttpClient 是 .NET 提供的一个用于发送 HTTP 请求并接收响应的强大工具。通过使用 `System.Net.Http` 命名空间中的类,可以轻松实现 GET、POST 等多种类型的网络请求。
#### 创建 HttpClient 实例
为了提高性能和避免套接字耗尽问题,建议创建单个静态的 HttpClient 实例[^3]:
```csharp
public static class HttpHelper {
private static readonly HttpClient client = new HttpClient();
}
```
#### 发送 GET 请求获取字符串内容
下面是一个简单的例子展示如何向指定 URL 发起 GET 请求,并读取返回的内容作为字符串:
```csharp
static async Task<string> GetStringContentAsync(string url){
try{
HttpResponseMessage response = await HttpHelper.client.GetAsync(url);
response.EnsureSuccessStatusCode(); // 如果状态码不是成功的,则抛出异常
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
} catch(HttpRequestException e){
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
throw;
}
}
```
#### POST JSON 数据到服务器端口
当需要提交表单或者其他结构化数据给 Web API 或者其他 RESTful 接口时,通常会采用 POST 方法携带 JSON 格式的负载体。这里给出一个通用的方法来完成这项工作:
```csharp
static async Task<HttpResponseMessage> PostJsonDataAsync<T>(string requestUri, T dataObject){
var jsonContent = JsonSerializer.Serialize(dataObject);
using(var content = new StringContent(jsonContent, Encoding.UTF8, "application/json")){
return await HttpHelper.client.PostAsync(requestUri,content);
}
}
```
此代码片段展示了序列化对象成 JSON 字符串并通过 `StringContent` 类将其封装为适当格式的过程。
对于更复杂的场景比如设置自定义头信息、处理身份验证或是集成第三方库如 FacebookHttpClient 来简化针对某些平台的操作,可以根据具体需求调整上述基础模式[^1]。
阅读全文
相关推荐


















