14

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

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

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

我可以不将此标头与 RestSharp 一起使用,还是我需要做其他事情来启用它?

任何人都可以帮忙吗?谢谢。

4

1 回答 1

8

要得到一个好的答案,你需要问一个好问题。它在文档中的什么地方这么说?(链接/参考?)“大容量”有多少请求?此外,如果您发布了有关如何添加Connection: Keep-Alive到 http 标头的代码,这里的某人可能能够评论您的技术并帮助您解决特定的编程问题。

此外,Connection: Keep-Alive可能已经存在于传出的 HttpRequests 上!使用FiddlerWireShark进行检查。我已经看过一些博客文章,其中包含 RestSharp 请求的wireshark 捕获,这些请求的Connection: Keep-Alive标头存在而没有任何额外的配置。例如,在使用 RestSharp 作为消费者测试其他 mvc3 功能时,Jimmy Bogard使用已经具有Connection: Keep-Alive标头的提琴手捕获他的 RestSharp 请求。

显然,它也是内置 .Net 类(如System.Net.Webclient)使用的默认行为Connection: Keep-Alive。参考WebClient 是否使用 KeepAlive?

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

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

于 2012-06-19T05:15:56.587 回答