@jokker791112

Отправка из 1C POST запрос с файлом xml?

Есть ссылка некий ресурс, например: info.eks.com/eservice.aspx?username=123456789, к которому необходимо послать POST запрос.
Написал процедуру:
ИмяСервера = "info.eks.com";
HTTP = Новый HTTPСоединение(ИмяСервера,);

// Получим временный файл для передачи в теле POST запроса
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();

ОбъектЗапись = Новый ЗаписьXML;
ОбъектЗапись.ОткрытьФайл(ФайлТелаЗапроса);
ОбъектЗапись.ЗаписатьОбъявлениеXML();

ОбъектЗапись.ЗаписатьНачалоЭлемента("xml");

ОбъектЗапись.ЗаписатьНачалоЭлемента("info");

ОбъектЗапись.ЗаписатьНачалоЭлемента("requestType");
ОбъектЗапись.ЗаписатьТекст("1");
ОбъектЗапись.ЗаписатьКонецЭлемента();

ОбъектЗапись.ЗаписатьКонецЭлемента();

ОбъектЗапись.ЗаписатьНачалоЭлемента("request");

ОбъектЗапись.ЗаписатьНачалоЭлемента("inn");
ОбъектЗапись.ЗаписатьТекст("078596354");
ОбъектЗапись.ЗаписатьКонецЭлемента();

ОбъектЗапись.ЗаписатьКонецЭлемента();

ОбъектЗапись.ЗаписатьКонецЭлемента();

ОбъектЗапись.Закрыть();
//
// Получим временный файл — тело ответа POST запроса
ФайлРезультат = ПолучитьИмяВременногоФайла();


// Отсылаем POST запрос на обработку.

Логин = "123456789";

HTTPЗапрос = Новый HTTPЗапрос("/eservice.aspx");
HTTPЗапрос.УстановитьТелоИзСтроки("?username=" + Логин);
HTTPЗапрос.УстановитьИмяФайлаТела(ФайлТелаЗапроса);

Результат = HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультат);

Но почему-то не работает, в чем я мог ошибиться?
  • Вопрос задан
  • 3807 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
Для отладки взаимодействия с внешними серверами рекомендую использовать инструменты типа Fiddler (статья на Хабре) - так вы сможете проверить пакет, который формируете и отправляете, а так же весь ответ сервера (заголовки и тело).

А вы в курсе, что файлы вообще не нужны? Если сделать УстановитьСтроку() для ЗаписьXML, то при закрытии она вернет результирующую строку. Далее установить тело HTTP-запроса можно с помощью УстановитьТелоИзСтроки(). А если не указывать второй параметр у функции ОтправитьДляОбработки(), то она вернет HTTPОтвет, из которого можно прочесть всю нужную информацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы