关于c#:REST API放置大数据

REST API Put large data

我在Microsoft Web API中实现了一个REST API。在我的客户机中,我使用httpRequestMessage和httpResponseMessage。当我发送一个小类时,我将它序列化到JSON,然后发送它。很快,我的类变大了,我需要对类进行JSON,压缩它(在内存中)并发送到服务器。我不能再使用同样的技术,我需要分块发送压缩包。

正确的方法是什么?我读过这篇文章,将一个文件和相关数据发布到一个RESTfulWebservice,最好是JSON。

需要一些好文章,我不知道从哪里开始。


在客户机方面,这应该是开箱即用的…

1
2
3
4
5
6
7
        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之前的版本,那么在发送之前,请求将在客户端得到缓冲。不幸的是,在.NET 4.5之前,基础httpwebrequest不支持缓冲流