4

C#クライアントでJavaで記述されたRESTAPIを使用しています。私はサーバーに大量のデータを送り込んでいて、RestSharp.dllを使用してREST呼び出しを行っていました。私が行うことは、オブジェクトを構築し、それをRestSharpリクエストオブジェクトの本体に直接追加し、そのための.netserializerについて言及することです。したがって、自動的にシリアル化されて投稿されます。すべてがうまく機能します。

次に、LZOまたはGZIP圧縮を適用する必要があります。そのため、サーバーの負荷は少なくなります。

私は両方の圧縮技術を実装する方法を知っています。しかし、RestSharpリクエストオブジェクトでそれを実装するにはどうすればよいですか?

私がやらなければならないこと。リクエストの本文にオブジェクトを追加しています。いつ圧縮を実行しますか?

Anyhelp ...

ありがとう

4

1 に答える 1

4

RestSharpは、バージョン102.7以降のHTTP圧縮をサポートしています。これがWindowsPhoneでのみ機能するのか、すべてのプラットフォームで圧縮がサポートされているのかはわかりません。

最も一般的なアルゴリズムはGZipとDeflateですが、実際の圧縮レベルは通常サーバーによって制御されます。

アップデート:

103.1でHTTP圧縮がデフォルトで有効になっていることをFiddlerを使用して確認しました。次のコードは、GZipを使用してエンコードされたページを返します。

        var target = "http://msdn.microsoft.com/";
        var client=new RestClient(target);
        var request = new RestRequest("",Method.GET);
        var response = client.Execute(request);
        Console.WriteLine(response.Content);

Accept-Encodingヘッダーを追加する必要はありません。

圧縮は、サーバーがそれをサポートしている場合にのみ機能します。それ以外の場合、応答は圧縮解除されます。

これは、JavaサービスがHTTP圧縮も有効にする必要があることを意味します。

応答が圧縮されている場合、Content-Encodingヘッダーは圧縮メソッドに設定されます。gzip

これを視覚的に確認するには、Fiddlerを開き、RestRequestへの応答を確認します。[応答]ペインの[トランスフォーマー]タブには、圧縮設定が表示されます。

于 2012-06-06T13:16:49.507 に答える