4

我在 microsoft Web API 中实现了一个 REST API。
在我的客户端中,我使用 HttpRequestMessage 和 HttpResponseMessage。
当我发送一个小类时,我将其序列化为 JSON,然后发送。
很快,我的班级变大了,我需要将班级 JSON 化,压缩(在内存中)并发送到服务器。我不能再使用相同的技术,我需要分块发送 zip。

实现它的正确方法是什么?我已阅读这篇文章Posting a File and Associated Data to a 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;

您可以在WebApiContrib中找到 CompressedContent 的实现。如果您使用早于 .net 4.5 的请求将在发送前缓冲客户端。不幸的是,底层 HttpWebRequest 直到 .net 4.5 才支持缓冲流式传输

于 2013-08-26T16:12:03.807 回答