次の問題があります。POSTを介してjsonを送信するメソッドがあります。
public string request (string handler, string data)
{
WebRequest request = WebRequest.Create(baseUri + "/?h=" + handler);
request.Method = "POST";
request.ContentType = "text/json";
string json = "json=" + data;
byte[] bytes = Encoding.ASCII.GetBytes(json);
request.ContentLength = bytes.Length;
Stream str = request.GetRequestStream();
str.Write(bytes, 0, bytes.Length);
str.Close();
WebResponse res = request.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
lastResponse = sr.ReadToEnd();
return lastResponse;
}
サーバーでこのメソッドを使用すると、POSTにデータが送信されません。このコードが実行されていないかのように。
Stream str = request.GetRequestStream();
str.Write(bytes, 0, bytes.Length);
str.Close();
サーバーでは、デバッグに次のphpスクリプトを使用しています。
<?php print_r($_POST); ?>
また、次のようにストリームに書き込もうとしました。
StreamWriter strw = new StreamWriter(request.GetRequestStream());
strw.Write(json);
strw.Close();
結果-ゼロ応答。それに応じて、空の配列が来ます。