【问题标题】:Do an HTTP Post in .NET (Vb) with compressed data using deflatestream使用 deflatestream 在 .NET (Vb) 中使用压缩数据执行 HTTP Post
【发布时间】:2010-02-17 00:29:52
【问题描述】:

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

问题。

  1. 我应该发送 压缩后的 ContentLength 流,如果是,我如何获得它。
  2. 我是否应该写入数据流 还是压缩?
  3. 你是这样使用的吗 DataStream 和 DeflateSram 一起?
  4. 在服务器端,考虑到 apache 应该自动处理膨胀,我该怎么做 知道它正在工作(到目前为止,我 知道我没有时间节省 使用的两种方法之间的帖子 以上)。

【问题讨论】:

  • 为什么你认为它不起作用?

标签: .net compression mod-deflate gzipstream deflatestream


【解决方案1】:

This question 包含压缩请求的代码(隐含回答您的 Q1、Q2 和 Q3)。

Q4:使用嗅探器检查线路上发送的数据。 Fiddler2 是免费的,而且非常易于安装和使用。

对链接问题的回答解释了为什么 mod_deflate 在压缩请求方面不会成为您的朋友。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多