2010-09-01 139 views
1

我使用Web客户端与C#压缩上传的数据 下面的代码工作正常如何使用Web客户端C#

wc = new WebClient(); 
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); 
NameValueCollection nvc = new NameValueCollection(); 
nvc.Add("webdata", JsonConvert.SerializeObject(webdata)); 
response = wc.UploadValues(@"http://localhost/api/results", "PUT", nvc); 

的应用是最有可能通过移动数据连接使用,因此将成本降到最低,我想要确保数据是压缩的,因为它全部是txt。我已经使用json而不是xml来缩小尺寸(并且可能会改变格式以进一步减少开销)

我需要手动压缩数据才能将其添加到WebClient 或者是否有某种方式可以告诉WebClient的是我的web服务器可以处理压缩 (或没有在Web服务器上压缩只适用于下载工作?)

我在事先在Web服务器上运行的Apache/PHP

感谢

+0

HTTP压缩通常用于响应。可以压缩请求,但并非所有的Web服务器都会接受它。 您是否尝试添加类型为“Content-Encoding”的标题并将值“gzip”添加到您的请求中?您仍然必须使用GZipStream手动压缩内容,然后将压缩字节写入请求流。 – stombeur 2010-09-01 13:05:57

+0

如果让你的评论一个答案,然后我可以接受它 – bumperbox 2010-09-01 20:30:49

回答

1

HTTP压缩通常只用于响应秒。可以压缩请求,但并非所有的Web服务器都会接受这些请求并对其进行解压缩。

您是否尝试添加类型为“Content-Encoding”的头并将值“gzip”添加到您的请求中?

您仍然必须使用GZipStream手动压缩内容,然后将压缩字节写入请求流。

不要忘记刷新你的作家流,或者不是所有的数据将通过电线发送:)