2010-09-01 73 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手動壓縮內容,然後將壓縮字節寫入請求流。

不要忘記刷新你的作家流,或者不是所有的數據將通過電線發送:)