IHttpClientFactory 踩过的坑
2024-08-31 06:10:45
public class BasicUsageModel : PageModel
{
private readonly IHttpClientFactory _clientFactory; public IEnumerable<GitHubBranch> Branches { get; private set; } public bool GetBranchesError { get; private set; } public BasicUsageModel(IHttpClientFactory clientFactory)
{
_clientFactory = clientFactory;
} public async Task OnGet()
{
var request = new HttpRequestMessage(HttpMethod.Get,
"https://api.github.com/repos/aspnet/AspNetCore.Docs/branches");
request.Headers.Add("Accept", "application/vnd.github.v3+json");
request.Headers.Add("User-Agent", "HttpClientFactory-Sample"); var client = _clientFactory.CreateClient(); var response = await client.SendAsync(request); if (response.IsSuccessStatusCode)
{
var responseStream = await response.Content.ReadAsStreamAsync();
Branches = await JsonSerializer.DeserializeAsync
<IEnumerable<GitHubBranch>>(responseStream);
}
else
{
GetBranchesError = true;
Branches = Array.Empty<GitHubBranch>();
}
}
仔细看没什么问题吧?
using var responseStream = await response.Content.ReadAsStreamAsync();
使用的时候没加using,导致并发连接数高一直没有释放,致使应用奔溃
最新文章
- virtualenv中ImportError: No module named django
- js 仿phptrim
- BZOJ 1500 Splay 全操作
- Java中RSA非对称密钥加解密使用示例
- IOS的UI基础02
- 夺命雷公狗---DEDECMS----1dedecms的安装过程
- routeros的配置资料
- Java中的代码块
- Codeforces Round #362
- 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式
- 动态规划——Edit Distance
- IDEA开发工具的学习
- Python 虚拟环境[virtualenv/virtualenvwrapper]设置
- 如何抓取电商的数据 &; Python
- CSS 实现隐藏滚动条同时又可以滚动
- 2018/04/24 PHP 设计模式之注册树模式
- 算法之如何实现LRU缓冲淘汰策略
- js 实现遮罩某一部分
- 黑马Python——学习之前
- linux编程vim设置
热门文章
- 设计模式(六)——建造者模式(源码StringBuilder分析)
- MySQL 中的自增主键
- Codeforces Round #585 (Div. 2) E. Marbles(状压dp)
- 【poj 1961】Period(字符串--KMP 模版题)
- Java并发包源码学习系列:线程池ThreadPoolExecutor源码解析
- servlet相关知识点
- 1076D Edge Deletion 【最短路】
- 关于free和delete的使用
- docker-swarm----多机容器管理
- [转]论基于DSSA的软件架构设计与应用