我从 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()
但是我不确定如何使用 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()
问题。
- 我是否应该发送压缩流的 ContentLength,如果是,我该如何获得。
- 我应该写入数据流还是压缩?
- 这就是你如何一起使用 DataStream 和 DeflateSram 的吗?
- 在服务器端,考虑到 apache 应该自动处理膨胀,我怎么知道它正在工作(到目前为止,我知道在上面使用的两种方法之间我的帖子没有节省时间)。