2010-02-17 29 views
1

我從VB.Net客戶端發佈的數據很大,我想壓縮。 我想做一個「POST」,並且Apache服務器支持mod_deflate。 我想將DeflateStream整合到我的郵政編碼中,但似乎沒有工作。使用deflatestream在.NET(Vb)中使用壓縮數據執行HTTP Post

我可以使用標準代碼發送未經壓縮的數據。

request.ContentType = "application/x-www-form-urlencoded" 

    Dim dataStream As Stream = request.GetRequestStream() 
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strEncodedXML) 
    request.ContentType = "application/x-www-form-urlencoded" 
    request.ContentLength = byteArray.Length 
    dataStream.Write(byteArray, 0, byteArray.Length) 
    dataStream.Close() 
    Dim response As WebResponse = request.GetResponse() 

但是我不知道如何使用Deflate Stream添加壓縮。 我最好的猜測是以下,但我不認爲它工作。

request.Headers.Add("Content-Encoding", "deflate") 
    request.ContentType = "application/x-www-form-urlencoded" 

    Dim dataStream As Stream = request.GetRequestStream() 
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strEncodedXML) 
    Dim compress As New DeflateStream(dataStream, CompressionMode.Compress, True) 
    request.ContentType = "application/x-www-form-urlencoded" 
    request.ContentLength = byteArray.Length 
    dataStream.Write(byteArray, 0, byteArray.Length) 
    dataStream.Close() 
    Dim response As WebResponse = request.GetResponse() 

問題。

  1. 我應該發送壓縮後的 流的 的ContentLength,如果是這樣,我怎麼說。
  2. 我應該寫入數據流 還是壓縮?
  3. 這是你如何使用 DataStream和DeflateStram 在一起?
  4. 在服務器端,考慮到apache會自動處理充氣,我如何知道它正在工作(到目前爲止,我知道在使用的兩種方法之間的帖子上我的 沒有節省上面的 )。
+0

你爲什麼不認爲它工作? –

回答

0

This question包含拉伸請求(隱含地回答您的Q1,Q2和Q3)的代碼。

問題4:使用嗅探器檢查線上發送的數據。 Fiddler2是免費的,並且非常易於安裝和使用。

鏈接問題的答案解釋了爲什麼mod_deflate不會成爲您的朋友關於請求的壓縮。

相關問題