|
post http -запрос со сжатием данных | ☑ | ||
---|---|---|---|---|
0
viacheslav
12.08.14
✎
17:39
|
Какие варианты есть отправить из 1С запрос на сторонний веб-сервис с использованием gzip сжатия?
Не могу найти примеров, как это это сделать именно из 1С |
|||
1
ДенисЧ
12.08.14
✎
17:41
|
1с штатно это не умеет, насколько я помню
|
|||
2
viacheslav
12.08.14
✎
17:53
|
(1) На штатные средства 1С и не надеялся =) Допускаю использование сторонних компонент
|
|||
3
Serginio1
12.08.14
✎
17:54
|
||||
4
viacheslav
13.08.14
✎
09:24
|
(3) Не совсем понял, как это применимо к 1С.
Вот у меня есть исходный пост-запрос к веб-сервису. В заголовок я добавляю Content-Encoding: gzip А содержимое запроса как сжать? |
|||
5
Serginio1
13.08.14
✎
11:46
|
(4) Содержимое запроса ты можешь сжать и с помощью ЗаписьZipФайла и его кодировкой в Base64
|
|||
6
viacheslav
13.08.14
✎
12:06
|
Содержимое запроса нужно сжать как строку алгоритмом deflate (который используется gzip'ом), не через файл. Не знаю, как правильнее объяснить
Вот здесь смежная проблема описана, не сжатие, а распаковка, но суть та же v8: zlib распаковка СТРОК |
|||
7
viacheslav
13.08.14
✎
12:08
|
(5) Может я неправильно понял, сможешь набросать пример?
есть строковая переменная с текстом запроса, как получить из нее строку-результат сжатия gzipом |
|||
8
Serginio1
13.08.14
✎
14:26
|
Сжимается в двоичные данные в файл. А вот двоичные легко преобразуются в строку через Base64Строка(ДД)
|
|||
9
Serginio1
13.08.14
✎
14:30
|
Но вообще обычно в Вэб сервисе предусмотрено передача получение двоичных данных например
ддФайлЭксель = Новый ДвоичныеДанные(НаименованиеФайла); ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "base64Binary"); ДвоичныеДанные = ФабрикаXDTO.Создать(ТипДвоичныеДанные,ддФайлЭксель); Возврат ДвоичныеДанные; |
|||
10
viacheslav
13.08.14
✎
14:36
|
(8) Похоже мы все-таки друг друга не понимаем. Веб-сервис ожидает в запросе получить сжатую gzipом строку, не думаю что серверу удастся расшифровать те данные, о которым вы пишите
Веб-сервис сторонний, протокол http1.1/soap, требуется сжимать передаваемые данные gzipом (в заголовке запроса Content-Encoding: gzip) Сейчас данные передаются без сжатия, использую для этого ком WinHttpRequest (готов использовать любой другой объект, wsпрокси не подходит по ряду причин). И вот появилась потребность сжимать данные, т.к. очень большой объем бывает. Веб-сервис это позволяет делать, а как реализовать на стороне 1С, не могу найти способ |
|||
11
Serginio1
13.08.14
✎
14:56
|
||||
12
viacheslav
14.08.14
✎
11:30
|
(11) Видно, моих знаний не хватает, по второй ссылке понимаю с трудом, о чем там написано. Для какого объекта мне нужно сделать обертку в моем случае?
|
|||
13
Serginio1
14.08.14
✎
11:34
|
Там все просто. Нужно знать нетовские классы. По ссылке я тебе привел пример как получать сжатые данные от сервера.
А вот как на сервер передавать сжатые данные я не знаю. Так, что ищи. Лучше использовать тот же http://stackoverflow.com/ или http://rsdn.ru/?Forum/Default.aspx?ans=1 здесь тебе не помогут |
|||
14
viacheslav
14.08.14
✎
11:37
|
(13) Что ж, жаль =/ интересно именно сжатие отправляемых данных на сервер
Спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |