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

1С:Предприятие :: 1С:Предприятие 8 общая

протокол SOAP

протокол SOAP
Я
   e2v
 
23.10.18 - 08:26
Столкнулся с такой пакостью, не понимаю где копать.

РезультатСоединения = Соединение.ОтправитьДляОбработки(Запрос)

Запрос - это HTTPЗапрос с xml данными. Отрабатывает нормально, ответ приходит 200. Но ... xml данные не правильные. Думал формирую данные с ошибкой. Нет, оказалось, что при отсылки формируется пакет SAOP с ошибкой.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope>
    <SOAP-ENV:Body>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelo

не дописывает "pe>" в конце.
Не понимаю. Че это?
 
 
   VS-1976
 
1 - 23.10.18 - 08:41
(0) Баг или фича?
   e2v
 
2 - 23.10.18 - 08:43
Нашел.
ЗаголовокHTTP.Вставить("Content-Length", XMLСтрока(СтрДлина(XMLпакет)));
Вот эта су.... неправильно считает длину строки.
Тогда вопрос повторяется. Че это?
   VS-1976
 
3 - 23.10.18 - 08:47
(2) Ставь filder и экспериментируй как хочешь
   palsergeich
 
4 - 23.10.18 - 08:49
Content-lenght на сколько я помню этот заголовок сам вставляется в момент отправки, если не был установлен ранее. Скорее всего в момент xmlстрока происходит удаление каких то символов и из-за этого стр длина считает некорректно. Уберите функцию xmlстрокк в заголовке
Но я не помню проблем именно с этим заголовком. Обычно проблемы из-за отсутствия content-type
   palsergeich
 
5 - 23.10.18 - 08:52
Ой да xml строка снаружи а не внутри.
Так же было замечено что не все спец символы стр длина корректно считает.
Попробуйте без этого заголовка.
   Cyberhawk
 
6 - 23.10.18 - 08:59
Вставлять Content-Length самостоятельно посчитанный - это не от большого ума
   e2v
 
7 - 23.10.18 - 09:15
(2)Таки fidler-ом и нашел
   e2v
 
8 - 23.10.18 - 09:17
Да. без формирования заголовка Content-Length считает правильно.
Спасибо, наставили на путь истинный.
Хотел строго по написанному формировать 8))).
   palsergeich
 
9 - 23.10.18 - 09:20
(8) ставь content-type, не забывай, многие парсеры без него не работают

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