C# RESTAPI放置大数据

C# RESTAPI放置大数据,c#,.net,rest,asp.net-web-api,C#,.net,Rest,Asp.net Web Api,我在microsoft Web API中实现了一个REST API。 在我的客户端中,我使用HttpRequestMessage和HttpResponseMessage。 当我发送一个小类时,我将它序列化为JSON,然后发送它。 很快,我的类就变大了,我需要对类进行JSON、压缩(在内存中)并发送到服务器。我不能再使用相同的技术了,我需要将zip文件分块发送 实现这一目标的正确途径是什么?我读过这篇文章 需要一些好文章,我不知道从哪里开始。在客户端,这应该是现成的 var htt

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

实现这一目标的正确途径是什么?我读过这篇文章


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

在客户端,这应该是现成的

        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的实现。如果您使用的是早于.net 4.5的版本,则在发送请求之前,将在客户端对请求进行缓冲。不幸的是,底层HttpWebRequest在.net 4.5之前不支持缓冲流传输,它是什么类型的数据,可能会变得多大?由于JSON不能很好地适应大数据有效负载,您是否可以控制RESTAPI以便修改序列化?JSON对于bid数据Darin来说工作得很好。唯一的问题是,您需要使用类似于在大型xml上使用sax解析器的解析器对其进行流式解析,这取决于您所说的“大型”是什么意思。如果要发送巨大的二进制文件,JSON可能是我选择的最后一种序列化机制。我要发送的一个文件是压缩数据库文件(SQL DB),我将限制为1GB。另一个文件(我写这个问题的那个文件)是一个包含很多类的类,我猜这个文件的最大容量可以达到10MB,压缩到内存中。但是你意识到如果压缩它,它就不再是JSON了吗?