首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
正确使用 HttpClient
返回列表
发新帖
正确使用 HttpClient
[复制链接]
发表于 2022-12-6 18:20:39
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
正确使用 HttpClient
使用 HttpClient 注意事项
HttpClient默认最大并发连接数是2
本机测试(被请求的WebApi部署在本机)HttpClient不会被限制最大并发连接数
使用HttpClient要写个工厂类,因为HttpClient不能频繁创建
HttpClient类提供的方法是线程
安全
的
HttpClient 工厂类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factory
{
/// <summary>
/// HttpClient工厂类
/// 注意:
/// 1. HttpClient默认最大并发连接数是2
/// 2. 本机测试HttpClient不会被限制最大并发连接数
/// </summary>
public class HttpClientFactory
{
private int _httpClientCount;
private readonly HttpClient[] _httpClientArray;
private int _index = -1;
private readonly object _lock = new object();
private static readonly HttpClientFactory _instance = new HttpClientFactory();
public static HttpClientFactory Instance
{
get
{
return _instance;
}
}
public HttpClientFactory(int httpClientCount = 50)
{
_httpClientCount = httpClientCount;
_httpClientArray = new HttpClient[_httpClientCount];
for (int i = 0; i < _httpClientCount; i++)
{
_httpClientArray[i] = new HttpClient();
}
}
public HttpClient Get()
{
lock (_lock)
{
_index++;
if (_index == _httpClientCount)
{
_index = 0;
}
return _httpClientArray[_index];
}
}
}
}
复制
代码
如何使用
string url = "http://192.168.31.11:5028/Test/Get";
HttpClient httpClient = HttpClientFactory.Instance.Get();
string strResult = await (await httpClient.GetAsync(url)).Content.ReadAsStringAsync();
复制
代码
回复
使用道具
举报
返回列表
浏览过的版块
物联网
Oracle
SQL-Server
人工智能
分布式数据库
DevOps与敏捷开发
云原生
网络安全
Java
SAAS
前进之路
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表