14

私はRESTSharpを使用してRESTWebサービスを利用しており、短期間に大量の呼び出しを行う予定です。

APIのドキュメントでは、これを行うために永続的なHTTP接続を使用することを強く推奨していますが、RestSharpでこれを機能させるのに苦労しています。

「Connection:Keep-alive」ヘッダーをリクエストに追加しようとしましたが、これを行うと、「Keep-AliveとCloseはこのプロパティを使用して設定されない可能性があります」というエラーでリクエストが失敗します。

このヘッダーをRestSharpで使用することはできませんか、またはこれを有効にするために他に何かする必要がありますか?

誰か助けてもらえますか?ありがとう。

4

1 に答える 1

8

良い答えを得るには、良い質問をする必要があります。ドキュメントのどこにこれが書かれていますか?(リンク/リファレンス?)「大量」のリクエストはいくつですか?また、httpヘッダーにどのように追加したかについてコードを投稿するとConnection: Keep-Alive、ここの誰かがあなたのテクニックについてコメントし、特定のプログラミングの問題について手助けしてくれるかもしれません。

また、Connection: Keep-Alive送信HttpRequestsにすでに存在している可能性があります。FiddlerまたはWireSharkを使用して確認してください。Connection: Keep-Alive追加の構成なしでヘッダーが存在するRestSharpリクエストのwiresharkキャプチャを含むいくつかのブログ投稿を見ました。たとえば、RestSharpをコンシューマーとして使用して他のmvc3機能をテストしている間、JimmyBogardConnection: Keep-Aliveは既にヘッダーを持っているfiddlerを使用してRestSharpリクエストをキャプチャします。

どうやら、これはSystem.Net.Webclientのような組み込みの.Netクラスが使用するデフォルトの動作でもありますConnection: Keep-Alive。参照WebClientはKeepAliveを使用しますか?

Keep aliveを利用することは、RestSharp自体を構成することよりも、RestSharpを最適な方法で使用するコードに関することになると思います。接続が再利用されていることを確認する場合は、RestSharpを使用して、1つのRestClientインスタンスをスコープ内に保持し、同じホストに対する複数のリクエストで再利用できるようにする必要があります。

再びFiddlerまたはWireSharkを使用すると、分析のためにいくつかのHttpRequestをキャプチャするのに役立ちます。

于 2012-06-19T05:15:56.587 に答える