Вход | Регистрация
 

POST-запрос в 1С

POST-запрос в 1С
Я
   vsg-work
 
22.02.21 - 10:02
Здравствуйте, уважаемые коллеги. Впервые сталкиваюсь с такой задачей. Нужно получить xml файл с сервера. (кратко о задаче - интеграция 1С сервисом заказов клиентов). Нужно забирать xml файл регламентным заданием, считывать с него данные, и создавать заказы в 1С.

Внешней обработкой пишу следующий код:
HTTP =  Новый HTTPСоединение("____url адрес сервера ____",,"salesdir","2020",,);
ФайлЗапроса = ПолучитьИмяВременногоФайла();    
    
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.УстановитьТекст("");          
ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.ANSI);
    
ФайлОтправки = Новый Файл(ФайлЗапроса);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
    
ФайлРезультата = ПолучитьИмяВременногоФайла();
    
ЗаголовокHTTP = Новый Соответствие();
    
ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=utf-8");
    
HTTP.ОтправитьДляОбработки(ФайлЗапроса, "/b/es/porting+imp$product_price",
ФайлРезультата, ЗаголовокHTTP);
    
ТекстовыйФайлОтвет = Новый ТекстовыйДокумент;
ТекстовыйФайлОтвет.Прочитать(ФайлРезультата,КодировкаТекста.UTF8);
СтрокаОтветСервера = ТекстовыйФайлОтвет.ПолучитьТекст();
УдалитьФайлы(ФайлРезультата);

У меня сервер возвращает следующий ответ:
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.16.1</center>
</body>
</html>


Хотя, консультант системы заказов говорит, что должен возвращаться XML-файл.
 
 Партнерская программа EFSOL Oblako
   vsg-work
 
1 - 22.02.21 - 10:02
Подскажите, как быть, почему возвращает HTML-страницу, или это ответ сервера просто?
   чувак
 
2 - 22.02.21 - 10:04
(1) Вроде пишет ошибку 301
   J_B
 
3 - 22.02.21 - 10:10
Для начала проверить, возможно там https и нужно ЗащищенноеСоединение
   vsg-work
 
4 - 22.02.21 - 10:11
(3) Да, там HTTPS.
   vsg-work
 
5 - 22.02.21 - 10:15
(3) Сделал защищенное соединение. Теперь такой ответ от сервера:
<?xml version="1.0" encoding="utf-8"?>
<Root>
  <error>ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00229: input source is empty</error>
</Root>
   J_B
 
6 - 22.02.21 - 10:15
(4) тогда эту строчку править надо
HTTP =  Новый HTTPСоединение(...
   vsg-work
 
7 - 22.02.21 - 10:15
(6) <Root>
  <error>ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00229: input source is empty</error>
</Root>
Ответ от сервера
   vsg-work
 
8 - 22.02.21 - 10:16
<?xml version="1.0" encoding="utf-8"?>
<Root>
  <error>ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00229: input source is empty</error>
</Root>
   J_B
 
9 - 22.02.21 - 10:18
(5) тут уже курить документацию от сайта. Скорее всего, он ждет определенные параметры в теле запроса.
   Kassern
 
10 - 22.02.21 - 10:27
(0) отправляешь в заголовках json, заказчик про xml говорит, а на практике шлешь пустышку для обработки. Вы уверены что сервис обрабатывает корректно пустые файлы? Потом выяснится в документации, что надо слать xml/json данные в теле запроса)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.