|
Как с помощью WinHTTP можна получить фотографию в пользовательском режиме 1С | ☑ | ||
---|---|---|---|---|
0
SherifSP
30.05.12
✎
17:07
|
Как с помощью WinHTTP можна получить фотографию в пользовательском режиме 1С 8, по SSL соединению?
|
|||
1
Vladal
30.05.12
✎
17:25
|
Почитай книжку "Технологии интеграции 1СПрелдприятия"
|
|||
2
SherifSP
30.05.12
✎
17:33
|
Опробовал такой метод, v8: Клиентский сертификат для SSL соединения V8.2 сертификат не действителен, вот решил попробовать обойти его
|
|||
3
SherifSP
30.05.12
✎
17:34
|
Есть такой код, он отправляет файл, а как получить?
|
|||
4
SherifSP
30.05.12
✎
17:34
|
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST","https://trade.informjust.ua",0); WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","Windows-1251"); WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "Windows-1251"); WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); ПараметрыПОСТ = "fruit3=apple777"; WinHttp.Send(ПараметрыПОСТ); Текст = Новый ЗаписьТекста("C:\result.gif", КодировкаТекста.UTF8); Текст.ЗаписатьСтроку(WinHttp.ResponseText()); Текст.Закрыть(); |
|||
5
SherifSP
30.05.12
✎
17:38
|
Такой метод, тоже ругается на сертификат(
ПолеHTMLДокумента = ЭлементыФормы.ПолеHTMLДокумента; Объект = ПолеHTMLДокумента.Документ; КоллекцияКартинок = Объект.images; Для Каждого Элемент Из КоллекцияКартинок Цикл ИмяРесурсаКартинки = Строка(Новый УникальныйИдентификатор); ТипМайм = СокрЛП(Элемент.mimeType); // "Рисунок GIF", "Рисунок JPEG", 8 символов с пробелом слева. ПравыйКусок = Прав(ТипМайм, СтрДлина(ТипМайм) - 8); ТипКратко = НРег(ПравыйКусок); ИмяФайлаКартинки = КаталогСохранения + "\" + ИмяРесурсаКартинки + "." + ТипКратко; ГетЗапрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); Если ИспользоватьПрокси Тогда ГетЗапрос.SetProxy(2 , "192.168.0.1:8080"); // HTTPREQUEST_PROXYSETTING_PROXY КонецЕсли; ГетЗапрос.SetTimeouts(10000, 10000, 10000, 10000); БазовыйУРЛ = Элемент.src; Хидер1 = "Content-Type"; Хидер2 = "image/" + ТипКратко; // Тип рисунка. ГетЗапрос.Open("GET", БазовыйУРЛ, False); // Синхронный режим. ГетЗапрос.setRequestHeader(Хидер1, Хидер2); ГетЗапрос.Send(); СтатусОтправки = ГетЗапрос.status; Если СтатусОтправки <> 200 Тогда Сообщить("Ошибка отправки запроса на: " + Элемент.src); Продолжить; КонецЕсли; Стрим = Новый COMОбъект("ADODB.Stream"); Стрим.Mode = 3; Стрим.Type = 1; Стрим.Open(); Стрим.Write(ГетЗапрос.responseBody); Стрим.SaveToFile(ИмяФайлаКартинки, 2); Стрим.Close(); КонецЦикла; |
|||
6
SherifSP
30.05.12
✎
17:50
|
Произошла исключительная ситуация (WinHttp.WinHttpRequest): Недопустимый или неправильный центр сертификации
|
|||
7
SherifSP
30.05.12
✎
17:51
|
Ругается на ГетЗапрос.Send();
|
|||
8
Vladal
30.05.12
✎
17:52
|
Чесслово, пока не знаю. На следующей неделе буду соединять УТП с веб-мордой. Там тоже есть картинки.
|
|||
9
oleg_km
30.05.12
✎
17:58
|
SetOption смотри, буквально недавно обсуждалась эта проблема, набери поиск WinHTTP
|
|||
10
Vladal
30.05.12
✎
18:12
|
||||
11
smaharbA
30.05.12
✎
18:21
|
||||
12
oleg_km
30.05.12
✎
18:41
|
(10)(11) Ну видишь, опять для вас подсуетились
|
|||
13
SherifSP
31.05.12
✎
11:01
|
v8: Использование WinHTTP для отправки файла методом POST по https - интересно у него получилось осуществить данную задачу
|
|||
14
SherifSP
31.05.12
✎
11:01
|
Но он отправляет текст а не картинку
|
|||
15
oleg_km
31.05.12
✎
11:49
|
У WinHTTP есть метод получить результат в виде текста, а есть в виде Stream, который можно сохранить в бинарный файл
|
|||
16
SherifSP
31.05.12
✎
12:07
|
Вот такой код написал
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST","https://195.225.172.217:8080/screenshot/yUXnR42J?password=",0); WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","Windows-1251"); WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "Windows-1251"); WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); ПараметрыПОСТ = "fruit3=apple777"; WinHttp.Send(ПараметрыПОСТ); ИмяФайлаКартинки = "C:\22.gif"; Стрим = Новый COMОбъект("ADODB.Stream"); Стрим.Mode = 3; Стрим.Type = 1; Стрим.Open(); Стрим.Write(WinHttp.responseBody); Стрим.SaveToFile(ИмяФайлаКартинки, 2); Стрим.Close(); Ошибка: {Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (Send) WinHttp.Send(ПараметрыПОСТ); по причине: Произошла исключительная ситуация (WinHttp.WinHttpRequest): Недопустимый или неправильный центр сертификации Не знаю как с этим можно бороться, уже 4 день мучаюсь( |
|||
17
SherifSP
31.05.12
✎
12:09
|
Как узнать параметры пост, или они для всех стандартные?
|
|||
18
smaharbA
31.05.12
✎
12:11
|
тебе же написано - ставь опции игнорирования сертификатов и не умничай, никакого отличия твоего сабжа и (11) нету
|
|||
19
SherifSP
31.05.12
✎
13:21
|
WinHttp.Option(4,13056); Поставил, та же проблема (
|
|||
20
smaharbA
31.05.12
✎
13:22
|
(19) так опции не устанавливаются
|
|||
21
SherifSP
31.05.12
✎
13:32
|
СоздатьОбъект это переменная?
|
|||
22
smaharbA
31.05.12
✎
13:35
|
(21) это 7.7
|
|||
23
smaharbA
31.05.12
✎
13:36
|
|
|||
24
SherifSP
31.05.12
✎
13:55
|
Спасибо большое, все получилось)
|
|||
25
SherifSP
31.05.12
✎
16:27
|
Подскажите как очистить поле HTML документа?
|
|||
26
smaharbA
31.05.12
✎
16:28
|
.innerHTML=""; ?
или что за поле ? |
|||
27
smaharbA
31.05.12
✎
16:35
|
у инпутов есть валюе, у текстареи есть иннерТекст
|
|||
28
SherifSP
31.05.12
✎
16:38
|
ну вот получаю фотографию методом ЭлементыФормы.ПолеHTMLДокумента1.Перейти(Http//ya.ru);
Ввод адреса поцепил на поле ввода, сделал проверку Если Не ЗначениеЗаполнено(ЭлементыФормы.ПолеВвода1.Значение), тогда Возврат; Но когда отрабатывает это у меня остается предыдущая картинка, вот хочу очистить ЭлементыФормы.ПолеHTMLДокумента1 |
|||
29
smaharbA
31.05.12
✎
16:40
|
ПолеHTMLДокумента1 - это что ? (восьмерку вообще не знаю)
скорее всего типа ЭлементыФормы.ПолеHTMLДокумента1.innerHTML=""; |
|||
30
SherifSP
31.05.12
✎
16:44
|
Это Элемент управления
|
|||
31
SherifSP
31.05.12
✎
16:46
|
Такой как и Табличное поле, только со своим значение
|
|||
32
smaharbA
31.05.12
✎
17:00
|
на сколько вкуриваю, это именно не элемент управления (это адинес накрутило обертки), а именно обычный элемент хтмл
|
|||
33
SherifSP
31.05.12
✎
17:16
|
Ну да, как его очистить?
|
|||
34
smaharbA
31.05.12
✎
17:16
|
а иннерХТМЛ не срабатывает ?
|
|||
35
SherifSP
31.05.12
✎
17:17
|
Методом назад(); не получится так как у меня предыдущая фотка будит, а мне нужно чистое поле
|
|||
36
SherifSP
31.05.12
✎
17:17
|
Нет, пишет такого метода не существует
|
|||
37
oleg_km
31.05.12
✎
17:43
|
Может так: Перейти("about:blank");
|
|||
38
SherifSP
31.05.12
✎
17:49
|
(37) подошло, спс
|
|||
39
smaharbA
31.05.12
✎
17:53
|
установитьтекст ?
|
|||
40
SherifSP
31.05.12
✎
18:22
|
Нет Перейти("about:blank"); Перейти на чистую страницу
|
|||
41
smaharbA
31.05.12
✎
18:37
|
(40) это понятно, правильнее скорее будет
.Документ.body.innerHTML=""; типа такого (смысл - получить документ, а в нем уже приминять нормальные методы дома), абоутбланк вещь конечно не тяжелая, но может приводить и к висаку |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |