1

VB.Netクライアントから投稿しているデータが大きいので、圧縮したいと思います。「POST」を実行したいのですが、Apacheサーバーはmod_deflateをサポートしています。DeflateStreamを郵便番号に統合しようとしていますが、機能していないようです。

標準コードを使用して、圧縮せずにデータを送信できます。

    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()

ただし、DeflateStreamを使用して圧縮を追加する方法がわかりません。私の推測は次のとおりですが、機能していないと思います。

    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が自動的に膨張を処理することになっていることを考えると、Apacheが機能していることをどのように知ることができますか(これまでのところ、上記の2つの方法の間に投稿の節約はありません)。
4

1 に答える 1

0

この質問には、リクエストを圧縮するコードが含まれています(Q1、Q2、Q3に暗黙的に回答します)。

Q4:スニファを使用して、有線で送信されたデータを確認します。Fiddler2は無料で、インストールと使用が非常に簡単です。

リンクされた質問への回答は、mod_deflateがリクエストの圧縮に関してあなたの友達にならない理由を説明しています。

于 2010-02-17T08:45:45.750 に答える