3

次のコマンドとそれに似た他のコードを使用して POST 要求を送信できないのはなぜですか。Mozilla ブラウザの RESTClient を使用して同じリクエストを送信すると、正常に動作します。これは、LAN に展開されたサーバーのシミュレーターのみであり、ローカル マシンでも同様です。ライブサーバーでは正常に動作しています。

ASCIIEncoding encoding = new ASCIIEncoding();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.220.12:5000"); // this is my system's local ip
byte[] byteArray = encoding.GetBytes("hello");
request.Method = "POST";
request.ContentType = "text/xml";// i tried it with "application/x-www-form-urlencoded" as well
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Flush();
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
Console.ReadKey();
reader.Close();
dataStream.Close();
response.Close();

サーバーでテストしたところ、リクエストを正常に受信したことを示すメッセージが表示されましたが、上記のコードから受信したデータは表示されませんが、RESTclient からのデータは表示されます。

考えられる理由は何ですか。.net ライブラリからシミュレーターへの postdata の送信を許可していないファイアウォールはありますか?

これは、フォーマットされていない xml に対する同じ応答です。xml に問題はありません (RESTclient を介して送信しているものと同じコピーです)。

4

1 に答える 1