Отправка XML через HTTPЗапрос. Заковыка.

1. grafit 8 05.06.24 15:34 Сейчас в теме
Отправка XML файла через HTTPЗапрос.
Процедура ОтправкаИзФайла() 
    самФайлик         = "C:\TK\OUT\ch.xml";   
    Файлик               = Новый Файл(самФайлик);
    РазмерФайлика = XMLСтрока(Файлик.Размер());  
    
    Заголовки     = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "text/xml;charset=UTF-8"); 
    Заголовки.Вставить("Content-Lenght", РазмерФайлика);    
    Соединение   = Новый HTTPСоединение("localhost",9999,"admin","admin"); 
    
    ЗапросТуда   = Новый HTTPЗапрос;
    ЗапросТуда.УстановитьИмяФайлаТела(самФайлик);
    ЗапросТуда.Заголовки = Заголовки; 
    
    Ответ = Соединение.Получить(ЗапросТуда); //код ответа 200 
    Если Ответ.КодСостояния = 200 Тогда     
        ЧтоВОтвет = Ответ.ПолучитьТелоКакСтроку();
    КонецЕсли;
    
КонецПроцедуры
Показать



В результате код ответа получен 200,
и ЧтоВОтвет получено:
-------------------------------------
<!do ctype html><ht ml lang="ru"><head><met a charset="utf-8"/>
<met a name="viewport" content="width=device-width,initial-scale=1"/>
[*]
<title>ТххМ</title>[*]
<sc ript defer="defer" src="/static/js/main.e72637a3.js">
</sc ript>[*]
</head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
---------------------------

В браузерах JavaScript включен, но тем не менее в ответе присутствует-"You need to enable JavaScript to run this app."
Если использовать Соединение.ВызватьHTTPМетод("POST", ЗапросТуда);
то в этом случае код ответа 405 (read-only).
Если файл отправить через CURL, то всё в порядке, информация передается как надо.
Где заковыка?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 05.06.24 15:46 Сейчас в теме
(1) При использовании метода GET тело запроса отправлено не будет.
3. Sashares 33 05.06.24 17:28 Сейчас в теме
(1)
Заголовки.Вставить("Content-Lenght", РазмерФайлика);

Не надо передавать Content-Lenght, платформа его добавит сама.
4. grafit 8 06.06.24 08:13 Сейчас в теме
(3) Это хорошо, но суть дела не меняет.
6. Sashares 33 06.06.24 09:58 Сейчас в теме
(1)
Если файл отправить через CURL, то всё в порядке, информация передается как надо.

Установи Fiddler, и посмотри какой запрос отправляется при отправке через CURL.
Посмотри, какой запрос отправляется при отправке из 1С.
Устрани различия.
5. Marses 06.06.24 09:30 Сейчас в теме
Вроде ошибка в том, что вы продаете файл, а нужно двоичные данные.
Но обычно если файлы передают, то их передают в post, а не get
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот