Данные, которые я отправляю с клиента 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 of Compressed
Поток, если так, как я могу получить это.
- Должен ли я писать в поток данных
или сжать?
- Это то, как вы используете
DataStream и DeflateStram
все вместе?
- На стороне сервера, учитывая, что apache автоматически должен обрабатывать раздувание, как мне это сделать?
знаю, что это работает (пока я
знаю, что нет раз экономии на моем
сообщения между двумя используемыми методами
выше).