|
HTTP-Запрос обрезает тело запроса ЕГАИС | ☑ | ||
---|---|---|---|---|
0
Bertruger
14.04.17
✎
16:53
|
Конструкция примерно такая.
ЗапросHTTP = Новый HTTPЗапрос("/opt/in/WayBill", ЗаголовокHTTP); ЗапросHTTP.УстановитьТелоИзСтроки(Body,"UTF-8"); ОтветHTTP = НТТР.ОтправитьДляОбработки(ЗапросHTTP); В Body, большая накладная. При выполнении дает 500 ошибку, поставил httpAnalyzer, он мне показал что текст Body, обрезан примерно в половину. Кладу в Body маленький запрос остатков, всё отрабатывает, статус 200. В httpAnalyzer, запрос остатков не обрезается, т.к. маленький. Пробовал и так: ЗапросHTTP.УстановитьИмяФайлаТела(ФайлЗапроса); //Устанавливает имя файла, из которого будет прочитано тело POST-запроса. ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеБезBOM(body)); Результат тот же. У кого какие идеи есть? |
|||
1
Юрий Лазаренко
14.04.17
✎
17:11
|
(0) Длинный текст не помещается в переменную Body. Клади текст в текстовый документ, например, и передавай его в запрос через ТекстовыйДокумент.ПолучитьТекст()
ЗапросHTTP.УстановитьТелоИзСтроки(ТекстовыйДокумент.ПолучитьТекст(),"UTF-8"); |
|||
2
Bertruger
14.04.17
✎
17:15
|
(1) Проверял в отладке, в body текст полный, перед передачей в тело. Но после отправки, httpAnalyzer говорит что текста примерно 50%.
|
|||
3
Bertruger
14.04.17
✎
17:18
|
При этом если отправлять, через 1с 7.7 (msxml3 или WinHttp.WinHttpRequest.5.1 или curl), то всё уходит, статус 200, httpAnalyzer показывает 100% текста.
А вот через 8 режет. |
|||
4
dezss
14.04.17
✎
17:29
|
А что у тебя в ЗаголовокHTTP?
|
|||
5
Bertruger
14.04.17
✎
17:35
|
(4)
ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary); ЗаголовокHTTP.Вставить("Content-Length", XMLСтрока(СтрДлина(Body))); ЗаголовокHTTP.Вставить("Connection", "Keep-alive"); |
|||
6
Неверный Параметр И
14.04.17
✎
17:38
|
Попробуй Content-Length не указывать. Емнип оно само пересчитает правильно.
|
|||
7
Bertruger
14.04.17
✎
17:41
|
(6) Мерси. Текст в снифер пошел, весь.
|
|||
8
vladimir80
14.04.17
✎
17:48
|
(5) Я всю жизнь ошибочно полагал, что в Content-Length указывается длина сообщения в байтах, а не в символах...
|
|||
9
Неверный Параметр И
14.04.17
✎
17:55
|
(8) Конечно ошибочно. Оно же по стандарту в октетах, а не в байтах считается (:
|
|||
10
vladimir80
14.04.17
✎
18:07
|
(9) Супер ))) Теперь знаю как длину в октетах считать ))))
XMLСтрока(СтрДлина(Body)) =) |
|||
11
oleg_km
14.04.17
✎
18:32
|
(10) Не надо ее вообще считать. ЕЕ 1С само прекрасно считает
|
|||
12
Неверный Параметр И
14.04.17
✎
18:37
|
(10) Все правильно. По http передается html. Html это подмножество xml. Поэтому XMLСтрока (:
|
|||
13
oleg_km
14.04.17
✎
20:05
|
(12) http сетевой протокол, html и xml языки разметки. Что общего? Если что: по http вообще можно бинарные данные передавать.
|
|||
14
Неверный Параметр И
14.04.17
✎
20:22
|
(13) Бинарные данные, да. Наверно здесь даже лучше использовать https. Он со строками лучше работает, буковка "s" в конце говорит о специальной оптимизации для string.
|
|||
15
Юрий Лазаренко
14.04.17
✎
23:21
|
(14) А не о том, что он "secure"?
|
|||
16
oleg_km
15.04.17
✎
08:11
|
Он прикалывается
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |