Имя: Пароль:
1C
 
POST-запрос в 1С
0 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-файл.
1 vsg-work
 
22.02.21
10:02
Подскажите, как быть, почему возвращает HTML-страницу, или это ответ сервера просто?
2 чувак
 
22.02.21
10:04
(1) Вроде пишет ошибку 301
3 J_B
 
22.02.21
10:10
Для начала проверить, возможно там https и нужно ЗащищенноеСоединение
4 vsg-work
 
22.02.21
10:11
(3) Да, там HTTPS.
5 vsg-work
 
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>
6 J_B
 
22.02.21
10:15
(4) тогда эту строчку править надо
HTTP =  Новый HTTPСоединение(...
7 vsg-work
 
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>

Ответ от сервера
8 vsg-work
 
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>
9 J_B
 
22.02.21
10:18
(5) тут уже курить документацию от сайта. Скорее всего, он ждет определенные параметры в теле запроса.
10 Kassern
 
22.02.21
10:27
(0) отправляешь в заголовках json, заказчик про xml говорит, а на практике шлешь пустышку для обработки. Вы уверены что сервис обрабатывает корректно пустые файлы? Потом выяснится в документации, что надо слать xml/json данные в теле запроса)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.