Web サービスを使用しない少し古風なシステムとやり取りする必要があります。このシステムにデータを送信するには、XML ドキュメントを別のシステムの Web サイトのフォームに投稿する必要があります。この XML ドキュメントは非常に大きくなる可能性があるため、圧縮したいと考えています。もう 1 つのシステムは 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文書]」になります。
この質問は、プログラム以外の手段で達成できる場合、最終的には非プログラミングのバナーに該当する可能性があることを認識しているため、事前にお詫び申し上げます。