4

Microsoft Web API に実装された REST API があります。
私のクライアントでは、HttpRequestMessage と HttpResponseMessage を使用しています。
小さなクラスを送信するときは、JSON にシリアル化してから送信します。
すぐにクラスが大きくなり、クラスを JSON 化し、(メモリ内で) 圧縮してサーバーに送信する必要があります。もう同じ手法は使えません。zip を分割して送信する必要があります。

それを達成するための適切な方法は何ですか? ファイルと関連データを RESTful WebService に投稿するこの投稿を読みました。できれば JSON として

良い記事が必要です。どこから始めればよいかわかりません。

4

1 に答える 1

5

クライアント側では、これはほとんどそのままで動作するはずです...

        var httpClient = new HttpClient();

        httpClient.DefaultRequestHeaders.TransferEncodingChunked = true;

        var content = new CompressedContent(new StreamContent(new FileStream("c:\\big-json-file.json",FileMode.Open)),"UTF8");

        var response = httpClient.PostAsync("http://example.org/", content).Result;

CompressedContent の実装はWebApiContribにあります。.net 4.5 より前のバージョンを使用している場合、リクエストは送信前にクライアント側でバッファリングされます。残念ながら、基になる HttpWebRequest は、.net 4.5 までバッファリングされたストリーミングをサポートしていません。

于 2013-08-26T16:12:03.807 に答える