我必須與一個稍微陳舊的系統接口,不使用webservices。爲了將數據發送到此係統,我需要在另一個系統的網站上發佈XML文檔到表單。這個XML文檔可能會變得非常大,所以我想壓縮它。 其他系統坐在IIS上,我使用C#我的結束。我當然可以實現在發佈數據之前壓縮數據的東西,但這需要其他系統進行更改,以便可以對數據進行解壓縮。我想避免改變其他系統,因爲我不擁有它。如何無縫壓縮使用C#和IIS發佈到表單的數據?
我聽說在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 MB文檔]」。
我知道這個問題可能最終會落在非編程橫幅下,如果這是可以通過非編程方式實現的,請提前道歉。