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()
質問。
- 圧縮ストリームのContentLengthを送信する必要がある場合、送信するにはどうすればよいですか。
- データストリームに書き込むか、圧縮する必要がありますか?
- これは、DataStreamとDeflateStramを一緒に使用する方法ですか?
- サーバー側では、Apacheが自動的に膨張を処理することになっていることを考えると、Apacheが機能していることをどのように知ることができますか(これまでのところ、上記の2つの方法の間に投稿の節約はありません)。