与RestSharp的持久HTTP连接

Ada*_*obb 13 rest http keep-alive http-headers restsharp

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

API的文档强烈建议使用持久HTTP连接来执行此操作,但是我很难使用RestSharp.

我已经尝试在请求中添加"Connection:Keep-alive"标头,但是当我这样做时,请求失败并出现以下错误 - "可能无法使用此属性设置Keep-Alive和Close".

我可以不在RestSharp中使用此标头,或者我还需要做些什么才能启用它?

有人可以帮忙吗?谢谢.

Ben*_*yne 6

为了得到一个好的答案,你需要问一个好问题.它在文档中的位置是这样说的吗?(链接/参考?)有多少请求是"大量"?此外,如果您发布代码以了解添加Connection: Keep-Alive到http标头的方式,则此处的某些人可能会对您的技术发表评论并帮助您解决特定的编程问题.

此外,Connection: Keep-Alive可能已经出现在传出的HttpRequests上!使用FiddlerWireShark查看.我已经看到一些博客文章,其中包含了有Connection: Keep-Alive没有任何额外配置的标题存在的RestSharp请求的wireshark捕获.例如,在使用RestSharp作为消费者测试其他mvc3功能时,Jimmy Bogard使用已经拥有Connection: Keep-Alive标头的fiddler捕获他的RestSharp请求.

显然,这也是建立在.NET类,如默认行为System.Net.Webclient使用Connection: Keep-Alive.参考WebClient是否使用KeepAlive?

我认为,使用RestSharp以最佳方式使用RestSharp,而不是配置RestSharp本身.如果要确保重用连接,则需要确保使用RestSharp允许将一个RestClient实例保留在范围内并在针对同一主机的多个请求中重用它.

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