![]() |
![]() |
|
Base64Строка слишком большая :( | ☑ | ||
---|---|---|---|---|
0
fif
14.05.21
✎
15:20
|
Всем привет!
Задача: отправить pdf на сторонний ws через Base64. Строка выходит огромных размеров, поэтому убираю из нее все лишнее: ТабДок.Записать(КаталогВременныхФайлов() + "test.pdf", ТипФайлаТабличногоДокумента.PDF); ДвочныеДанные = Новый ДвоичныеДанные(КаталогВременныхФайлов() + "test.pdf"); НашиДвоичныеДанные = ПолучитьBase64Строка(ДвочныеДанные); НашиДвоичныеДанные = СтрЗаменить(НашиДвоичныеДанные, Символы.ВК, ""); НашиДвоичныеДанные = СтрЗаменить(НашиДвоичныеДанные, Символы.ПС, ""); Потом добавляю остальные данные: СтрокаSOAP = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:int=""http://IntegrationWebService"" xmlns:arr=""http://schemas.microsoft.com/2003/10/Serialization/Arrays""> | <soapenv:Header/> | <soapenv:Body> |<int:EDocumentsCreate> |<int:XMLPackage><![CDATA[" + НашXMLПакет + "]]> |</int:XMLPackage> |<int:Documents> |<arr:base64Binary xmlns:arr=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"">" + НашиДвоичныеДанные +"</arr:base64Binary></int:Documents><int:ISCode>1C</int:ISCode></int:EDocumentsCreate> | </soapenv:Body> |</soapenv:Envelope>"; И отправляю... HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаSOAP,КодировкаТекста.UTF8); Строка обрезается и выходит хрень. Помогите, как собрать и отправить? |
|||
1
Garykom
гуру
14.05.21
✎
15:25
|
(0) тело из файла
и почитать описание сервиса что там для больших, может надо как то разбивать или через webdav |
|||
2
arsik
гуру
14.05.21
✎
15:33
|
(0) А что в ПолучитьBase64Строка()? Есть же стандартный метод Base64Строка() там не ПС и ВК.
И почему так? СтрокаSOAP = "... Почему не воспользоваться штатными средствами 1c lkz dt,cthdbcjd/ Vj;tn b ghj,ktvs yt ,eltn/ |
|||
3
arsik
гуру
14.05.21
✎
15:34
|
Почему не воспользоваться штатными средствами 1c lkz dt,cthdbcjd/ Vj;tn b ghj,ktvs yt ,eltn/
--- Почему не воспользоваться штатными средствами 1c. Может и проблемы не будет. |
|||
4
fif
14.05.21
✎
15:44
|
(2) Base64Строка() - никак не помог
Так сделано, потому что иначе будут проблемы с cdata |
|||
5
Сергиус
14.05.21
✎
16:17
|
(0)А если сделать файл, и устанавливать тело из него?
|
|||
6
arsik
гуру
14.05.21
✎
16:21
|
Надо просто фиддлером посмотреть, как 1с стандартно большие бинарные данные отправляет и сделать по аналогии.
|
|||
7
fif
14.05.21
✎
16:28
|
(5) (1)
Это про УстановитьТелоИзДвоичныхДанных? Сейчас попробую, но мне кажется не то будет |
|||
8
Сергиус
14.05.21
✎
16:31
|
(7)Можно попробовать еще УстановитьИмяФайлаТела
|
|||
9
acht
14.05.21
✎
16:48
|
(0) > Строка обрезается
Как определил? |
|||
10
Shur1cIT
14.05.21
✎
16:49
|
(0) на сколько помню стандартно IIS максимум 30 мегов запрос может получить, далее нужно с бубном настраивать, у меня в своё время не получилось, в результате передавал только ссылку на файл далее удалял его.
По поводу обрезания строки где ты обрезь смотришь? в отладчике? отображение может отрезаться, выгрузит в текст и посмотри |
|||
11
fif
14.05.21
✎
17:38
|
(8)
Сохраняется в файл корректно (проверила на soapui), отправляется видимо нет :( Возвращается 400 |
|||
12
fif
14.05.21
✎
17:39
|
(9) По ошибке 400
|
|||
13
acht
14.05.21
✎
17:39
|
(11) Верни обратно ВК и ПС
|
|||
14
fif
14.05.21
✎
17:53
|
(13) не помогло, ошибка 400
|
|||
15
fif
14.05.21
✎
18:02
|
Помогло записать все в файл, потом получить из файла и отправить методом УстановитьТелоИзСтроки
Всем спасибо) |
|||
16
acht
14.05.21
✎
18:23
|
Сдается мне, дело было в BOM
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |