私は.netでWebRequestクラスを使用しており、レスポンスで応答しているサーバーにPOSTデータを送信しています。
奇妙なことに、ネットワーク トラフィックを分析するために fiddler を開始したときには機能していましたが、fiddler がないと機能しません。
そこで、WireShark を使用して、コンピューターとの間で送受信されるパッケージの分析を開始しました。このプログラムでは、TCP ストリームを簡単に追跡できます。したがって、フィドラーをオンにすると、正しい要求ヘッダー/本文が送信され、応答ヘッダー/本文が取得されることがわかります。奇妙な部分は、フィドラーを使用しない場合に要求ヘッダーが送信され、次に応答ヘッダー/本文が取得され、最後に TCP ストリームの最後に要求本文が送信されることです。
ここに私が精緻化してきた私のコードがあります:
string lcUrl = "http://XX.XX.XXX.XX";
// *** Establish the request
HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);
string lcPostData = testdata;
loHttp.Method = "POST";
byte [] lbPostBuffer = System.Text.Encoding.GetEncoding(1252).GetBytes(lcPostData);
loHttp.ContentLength = lbPostBuffer.Length;
loHttp.Credentials = CredentialCache.DefaultCredentials;
//loHttp.SendChunked = true;
loHttp.ServicePoint.Expect100Continue = false;
Stream loPostData = loHttp.GetRequestStream();
loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length);
loPostData.Close();
HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream(), enc);
string lcHtml = loResponseStream.ReadToEnd();
loWebResponse.Close();
loResponseStream.Close();