问题标签 [dotnet-httpclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1638 浏览

.net - .NET 的 HttpClient 节流

我正在开发一个基于 .NET4 的应用程序,它必须请求第三方服务器才能从它们那里获取信息。我正在使用 HttpClient 发出这些 HTTP 请求。

我必须在短时间内创建一百或一千个请求。我想将这些请求的创建限制在一个限制(由常量或其他东西定义),这样其他服务器就不会收到很多请求。

我已经检查了这个链接,它显示了如何减少随时创建的任务数量。

这是我的非工作方法:

当然,这里的问题是,即使当时创建了一个任务,也会同时创建和处理很多请求,因为它们运行在另一个调度程序中。我找不到将调度程序更改为 HttpClient 的方法。

我应该如何处理这种情况?我想将创建的请求数量限制在一定范围内,但不要阻止等待这些请求完成。

这可能吗?有任何想法吗?

0 投票
3 回答
24263 浏览

c# - HttpClient 的自定义用户代理?

我可以为 a 设置自定义用户代理HttpClient吗?

我需要以移动形式查看网站。

0 投票
1 回答
2553 浏览

c# - 将 HttpResponseMessage.Content 数据 (ReadAsStringAsync) 限制为特定的最大大小

我正在使用以下内容:

有没有办法限制通过 HttpResponseMessage.Content 下载多少?如果我不信任 URL,并且 URL 实际上反馈 100 GB,那么这可能会带来麻烦......我基本上想将其限制为可配置的字节数 - 如果还有更多,我不会想要它!:) 谢谢!

0 投票
3 回答
11529 浏览

.net - .net HttpClient 与自定义 JsonConverter

我正在使用 .NET 的 HttpClient 向 WebAPI 发出请求,该 WebAPI 返回一些 JSON 数据,这些数据需要在客户端进行一些自定义反序列化。为此,我制作了自己的JsonConverter,但我不知道如何让该ReadAsAsync<T>方法获取转换器的存在。

我现在已经解决了我的问题,方法是使用ReadAsStringAsync读取响应,然后将该字符串传递给JsonConvert.DeserializeObject,但似乎应该有一个更优雅的解决方案。

这是我的代码:

这是我能做的最好的,还是有更优雅的方式?

这里也是我创建 HttpClient 的地方,如果那是我需要连接它的地方:

0 投票
2 回答
1629 浏览

c# - Parallel HTTPRequest using HttpClient in Windows 8 app

I am using HttpClient for sending HTTP requests and receiving HTTP responses in my Windows 8 app. I have few questions on the same:

1) Can I send multiple/parallel HTTP requests using a single HttpClient object? Is there a recommended way to use HttpClient object efficiently?

2) What is the difference when I create HttpClient object every time and when I re-use the same object for each new request?

3) I am tracking the requests and responses using Fiddler. What I found out is that the response time in Fiddler is different than the response time I am calculating manually inside my App. The response time for a request in Fiddler is always lower than the calculated response time in my app. Can anybody please tell me why it is like that?

4) One more thing I came across is that for every request it is doing HTTPS handshake. Instead it should do it only first time. I checked it using Fiddler and it is clearly visible there. Is there any property I need to set in HttpClient object to stop this from doing it every time.

5) Whether HttpClient is thread-safe?

0 投票
2 回答
9022 浏览

c# - 通过 Rest c# httpClient 创建 jira 问题

我在 atlassian https://answers.atlassian.com/questions/79902/using-httpclient-c-to-create-a-jira-issue-via-rest-generates-bad-request-response上阅读了一个答案,其中一个用户通过以下代码创建了一个 JIRA 问题。我对其进行了调整,但通过使用自建类问题得到了一个错误ObjectContent

编译器不会接受它。有人知道为什么吗?

并使用

0 投票
4 回答
27299 浏览

c# - HttpClient爬取导致内存泄漏

我正在研究 WebCrawler实现,但在 ASP.NET Web API 的 HttpClient 中遇到了奇怪的内存泄漏。

所以精简版在这里:


[更新 2]

我发现了问题,不是 HttpClient 泄漏了。看我的回答。


[更新 1]

我添加了 dispose 没有效果:

包含链接的文件可在此处获得。

这导致内存不断上升。内存分析显示 AsyncCallback 可能持有许多字节。我之前做过很多内存泄漏分析,但这一次似乎是在 HttpClient 级别。

进程的内存配置文件显示异步回调可能持有的缓冲区

我使用的是 C# 4.0,所以这里没有 async/await,所以只使用了 TPL 4.0。

上面的代码有效,但没有优化,有时会发脾气,但足以重现效果。关键是我找不到任何可能导致内存泄漏的点。

0 投票
1 回答
2314 浏览

httpwebrequest - .NET HttpClient 在多次请求后挂起(除非 Fiddler 处于活动状态)

System.Net.Http.HttpClient用于将来自控制台应用程序的一系列请求发布到 REST API,并将 JSON 响应反序列化为强类型对象。我的实现是这样的:

但是,我遇到了一个与此问题中描述的问题非常相似的问题,即当请求通过 Fiddler 路由时一切正常,但当 Fiddler 被禁用时,它在第 4 或第 5 个请求后挂起。

如果问题的原因是相同的,我认为我需要做更多的事情HttpClient来让它在每次请求后完全释放其资源,但我无法找到任何代码示例来说明如何做到这一点。

希望有人能指出我正确的方向。

非常感谢,

蒂姆

0 投票
3 回答
1542 浏览

c# - 如何使用 HttpClient 确定是否从缓存中完成了 HttpResponseMessage

使用HttpClientHttpResponseMessage时,与WebResponse.IsFromCache等效的是什么?

我可以查看响应中的一些 HTTP 标头吗?

0 投票
2 回答
8131 浏览

c# - C# 异步任务无限期等待

我正在尝试使用“async”和“await”提供的功能来异步下载网页内容,但我遇到了任务永远等待完成的问题。您能否让我知道以下代码片段有什么问题?