| 
    
        
     
     | 
    
  | 
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 данные в теле запроса)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |