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