http - 与 RestSharp 的持久 HTTP 连接

标签 http rest http-headers keep-alive restsharp

我正在使用 RestSharp 来使用 REST 网络服务,并将在短时间内进行大量调用。

API 的文档强烈建议使用持久 HTTP 连接来执行此操作,但是我正在努力使它与 RestSharp 一起使用。

我已尝试将“Connection: Keep-alive” header 添加到请求中,但是当我这样做时,请求失败并出现以下错误 - “可能无法使用此属性设置 Keep-Alive 和 Close。”

我不能将此 header 与 RestSharp 一起使用,还是我需要做其他事情才能启用它?

有人可以帮忙吗?谢谢。

最佳答案

要获得好的答案,您需要提出一个好的问题。它在文档的哪个位置说了这个? (链接/引用?)“大容量”有多少请求?此外,如果您发布有关如何将 Connection: Keep-Alive 添加到您的 http header 的代码,这里的人可能会评论您的技术并帮助您解决特定的编程问题。

此外,Connection: Keep-Alive 可能已经存在于传出的 HttpRequest 中!使用 Fiddler 查看或 WireShark .我看过一些博客文章,其中包含 RestSharp 请求的 wireshark 捕获,这些请求具有 Connection: Keep-Alive header ,但没有任何额外的配置。例如,在使用 RestSharp 作为消费者测试其他 mvc3 功能时,Jimmy Bogard使用已经具有 Connection: Keep-Alive header 的 fiddler 捕获他的 RestSharp 请求。

显然它也是内置 .Net 类的默认行为,如 System.Net.Webclient使用 Connection: Keep-Alive。引用 Does WebClient use KeepAlive?

我认为,使用 keep alive 与以最佳方式使用 RestSharp 的代码有关,而不是配置 RestSharp 本身。如果您想确保您的连接被重用,您需要通过在范围内保留一个 RestClient 实例并在针对同一主机的多个请求中重用它来确保您对 RestSharp 的使用允许这样做。

再次使用 FiddlerWireShark将帮助您捕获一些 HttpRequests 进行分析。

关于http - 与 RestSharp 的持久 HTTP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977907/

相关文章:

java - Spring @RestController 不会生成 application/xml

json - 通过部分 json 更新 REST API

apache - 分块传输编码示例

rest - slimframework request->headers 不读取授权

java - Java 中的 HTTP header 编码/解码

http - Shopify 使用在浏览器上工作但不使用 golang 脚本的获取请求将商品添加到购物车

web-services - 我应该如何开始实现 RESTful Web 服务?

forms - http.Request r.FormValue 什么都不返回/map[]

http-headers - 我可以禁止在 AWS Cloudfront 上发布 Etag header 吗?

python - python 2.7 中的 HTTP 2 请求