Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не получается отправить данные POST в C#

84K
30 июля 2012 года
ilyagulya
1 / / 30.07.2012
Здравствуйте!
У меня следующая проблема.
Есть метод который отправляет 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;
}
Проблема состоит в том, что на сервер не приходят данные в POST. Как будто данный фрагмент кода

 
Код:
Stream str = request.GetRequestStream();
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();
В итоге - ноль реакции. В ответ приходит пустой массив.
Заранее благодарю за помощь.
277
31 июля 2012 года
arrjj
1.7K / / 26.01.2011
Так попробуй:
 
Код:
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
...
string json="json="+System.Web.HttpUtility.UrlEncode(data);
byte[] bytes = Encoding.UTF8.GetBytes(json);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог