我必须与不使用 Web 服务的稍微过时的系统进行交互。为了向这个系统发送数据,我需要将一个 XML 文档发布到另一个系统网站上的表单中。这个 XML 文档可能会变得非常大,所以我想压缩它。另一个系统位于 IIS 上,我最终使用 C#。我当然可以在发布数据之前实现一些压缩数据的方法,但这需要其他系统进行更改,以便它可以解压缩数据。我想避免更改其他系统,因为我不拥有它。
我听说过有关在 IIS 和浏览器中启用压缩/http 1.1 的模糊信息,但我不知道如何将其转换为我的程序。基本上,我可以在我的程序中设置一些属性,使我的程序自动压缩它发送到 IIS 的数据,并让 IIS 无缝解压缩它,以便接收应用程序甚至不知道其中的区别?
这是一些示例代码,大致显示了我在做什么;
private static void demo()
{
Stream myRequestStream = null;
Stream myResponseStream = null;
HttpWebRequest myWebRequest = (HttpWebRequest)System.Net
.WebRequest.Create("http://example.com");
byte[] bytMessage = null;
bytMessage = Encoding.ASCII.GetBytes("data=xyz");
myWebRequest.ContentLength = bytMessage.Length;
myWebRequest.Method = "POST";
// Set the content type as form so that the data
// will be posted as form
myWebRequest.ContentType = "application/x-www-form-urlencoded";
//Get Stream object
myRequestStream = myWebRequest.GetRequestStream();
//Writes a sequence of bytes to the current stream
myRequestStream.Write(bytMessage, 0, bytMessage.Length);
//Close stream
myRequestStream.Close();
WebResponse myWebResponse = myWebRequest.GetResponse();
myResponseStream = myWebResponse.GetResponseStream();
}
“data=xyz”实际上是“data=[一个几 MB XML 文档]”。
我知道,如果可以通过非编程方式实现这一点,那么这个问题最终可能会归入非编程领域,因此请提前道歉。