2010-12-13 13 views
3

私は、POSTパラメータとして大きなblobのテキスト(実際にはJSONオブジェクト)を使用してHTTP要求を開始するクライアントソフトウェアを作成しています。サーバー上のテキストを送信して解凍する前に、このテキストを圧縮します。POSTパラメータを使用してHTTPのテキストを圧縮する

Gzipはバイナリを生成します。これはPOSTパラメータとして送信できません。

テキストを圧縮してWebサーバーに送信するためのオプションとアルゴリズムはありますか?

編集:GZIPのオプションになり、BASE64でバイナリデータをエンコードすることはできますか?

+0

クライアント側のアプリケーションはどの言語ですか。 –

+0

C#/ .NET 2.0で書かれています – koen

+0

WebRequestクラスを使用していますか? –

答えて

1

標準HTTP gzip compressionを使用してみませんか?

は、(それだけで不ホイールを再発明するビット狂ったようです。)

更新

はいああ - 私の悪いです。だから、単純にファイルをgzipして、マルチパート/フォームデータファイルのアップロードと同じようにサーバーにアップロードしてから、サーバー上でgzipを解除してください。

+0

私は、HTTP gzipがサーバーからクライアント/ブラウザーにデータを圧縮すると思います。私はそれを逆にして、クライアントで圧縮してサーバーに送信する必要があります。 – koen

+0

何らかの理由で、ファイルがWebサーバーのファイルシステムに書き込まれるため、オーバーヘッドが大きくなることが想定されますが、これはちょっとしたことです。 – koen

+0

ある時点では、ファイルはサーバー上になければならず、データを圧縮解除することは、この日および時代には些細なオーバーヘッドです。 –

0

ファイルは長い/不要な回避策です。元の質問は、恐ろしく大きなJsonブロブとの戦いに関連しています。私のハッキングから、私はそれがサーバーに大きく依存していると言えるでしょうし、いくつかはサポートしていないものもあります。

元の質問には、http postにバイナリデータを設定することができます。実際の質問は、サーバーがそれをどうするのかということです。 C#クライアントが自動的に解凍しないのと同じ方法です。余分なコードを書く必要があります。

関連する問題