Не получается отправить данные POST в C#
У меня следующая проблема.
Есть метод который отправляет json через POST.
Код:
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;
}
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;
}
Код:
Stream str = request.GetRequestStream();
str.Write(bytes, 0, bytes.Length);
str.Close();
str.Write(bytes, 0, bytes.Length);
str.Close();
На сервере наличие данных в POST проверяю PHP скриптом:
Код:
<?php print_r($_POST); ?>
Код:
StreamWriter strw = new StreamWriter(request.GetRequestStream());
strw.Write(json);
strw.Close();
strw.Write(json);
strw.Close();
Заранее благодарю за помощь.
Код:
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
...
string json="json="+System.Web.HttpUtility.UrlEncode(data);
byte[] bytes = Encoding.UTF8.GetBytes(json);
...
string json="json="+System.Web.HttpUtility.UrlEncode(data);
byte[] bytes = Encoding.UTF8.GetBytes(json);