Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка XML методом POST С#, Отправка XML методом POST С# 
V
    Опции темы
midnight_rabbit
Дата 19.2.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



 Может уже был вопрос, но все же.
Суть такова, нужно отправить хэмээль методом пост и получить данные.
Гуглил, нахожу все то же, что и у меня.

Делаю так

Код

XmlSerializer serializer = new XmlSerializer(typeof(SomeRequestClass)); //SomeRequestClass - Класс основанный на схеме запроса
XmlSerializer serializer2 = new XmlSerializer(typeof(SomeResponseObject)); ///SomeResponseClass - Класс основанный на схеме ответа

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

request.Method = "POST";

request.ContentType = "text/xml";

XmlTextWriter writer = new XmlTextWriter(request.GetRequestStream(), Encoding.UTF8);

serializer.Serialize(writer, req);

writer.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

XmlReader srData = XmlReader.Create(response.GetResponseStream());

SomeResponseObject resp = (SomeResponseObject)serializer2.Deserialize(srData); //SomeResponseClass - Класс основанный на схеме ответа

srData.Close();


Проблема основная заключается в том, что ответ не приходит, то есть приходит пустой стрим, на стороне сервера проблем точно нет. Если я ввожу неправильные данные для отправки, ошибку он мне возвращает, опять же иногда, то возвращает, то нет. Видимо это связано с тем, что сообщение об ошибке оч мало по объему, а правильный ответ довольно большой. Пробовал слип ставить, но это не помогает...


Что я делаю не так?

Наверх    
  

Это сообщение отредактировал(а) midnight_rabbit - 19.2.2008, 14:25
PM MAIL   Вверх
PPS05
Дата 19.2.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Имею мысль, что ты должен прочитать весь поток до конца, ибо сервер не отдает данные, пока ты не попросишь. Что-то вроде этого:

Код

HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();


Потом responseFromServer можно использовать для десериализации.


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
midnight_rabbit
Дата 20.2.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Спасибо за ответ, 

Теперь респонс приходит такой
"Empty XML [parameter "request", a method of transfer "POST"]"


То есть он не видит XML которуя передаю smile 

Это сообщение отредактировал(а) midnight_rabbit - 20.2.2008, 11:20
PM MAIL   Вверх
midnight_rabbit
Дата 20.2.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Все заработало, оказца надо было дополнительные параметры указывать в отправляемых постом данных.
 smile 

Всем спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.