Имя: Пароль:
1C
1С v8
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) Что ж, жаль =/ интересно именно сжатие отправляемых данных на сервер

Спасибо
2 + 2 = 3.9999999999999999999999999999999...