|
Использование WinHTTP для отправки файла методом POST по https | ☑ | ||
---|---|---|---|---|
0
roman2
21.05.12
✎
14:15
|
Бъюсь над вопросом 3-й день. Задача для меня очень важная.
Суть. Нужно отправить на Web-сервис данные. Пробовал использовать HTTPСоединение - уперся в сертификат. Забросил Соединение, решил использовать WinHTTP. Опять вылезла ошибка с сертификатом. Как отключить его обработку? На данный момент код такой: WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST","https://77.75.168.197:8008/WebServices/WebApi.asmx",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:\temp\result.txt", КодировкаТекста.UTF8); Текст.ЗаписатьСтроку(WinHttp.ResponseText()); Текст.Закрыть(); Буду очень благодарен решению! |
|||
1
smaharbA
21.05.12
✎
14:26
|
Option
WINHTTP_OPTION_SECURITY_FLAGS |
|||
2
roman2
21.05.12
✎
15:03
|
(1) Как это использовать в 1С? (Сори за идиотский вопрос)
|
|||
3
chingiz
21.05.12
✎
15:08
|
https это защищенный протокол. Пиши http.
|
|||
4
chingiz
21.05.12
✎
15:13
|
опции задаются через WinHttp.Option(,)
|
|||
5
roman2
21.05.12
✎
15:16
|
(4) а как передать параметр WINHTTP_OPTION_SECURITY_FLAGS?
так верно? WinHttp.Option(WINHTTP_OPTION_SECURITY_FLAGS,false) |
|||
6
smaharbA
21.05.12
✎
15:21
|
Option(4,13056)
|
|||
7
smaharbA
21.05.12
✎
15:22
|
||||
8
roman2
21.05.12
✎
15:23
|
(6) ого))) а можно понять как так получилось? где описание соответсвий числовых и символьных параметров?
|
|||
9
smaharbA
21.05.12
✎
15:25
|
set /a 0x100 + 0x200 + 0x1000 + 0x2000
WinHttpRequestOption_SslErrorIgnoreFlags Sets or retrieves a VARIANT that indicates which server certificate errors should be ignored. This can be a combination of one or more of the following flags. Error Value Unknown certification authority (CA) or untrusted root 0x0100 Wrong usage 0x0200 Invalid common name (CN) 0x1000 Invalid date or certificate expired 0x2000 The default value of this option in Version 5.1 of WinHTTP is zero, which results in no errors being ignored. In earlier versions of WinHTTP, the default setting was 0x3300, which resulted in all server certificate errors being ignored by default. |
|||
10
smaharbA
21.05.12
✎
15:26
|
или
set /a 0x3300 |
|||
11
chingiz
21.05.12
✎
15:28
|
Вообще эта опция тебе не нужна, попробуй например это, все работает.
WinHttp= Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST","http://ya.ru",0); WinHttp.Send(); Ответ=ПолучитьИмяВременногоФайла(); Файлоответ = Новый ТекстовыйДокумент() ; Файлоответ.УстановитьТекст(WinHttp.responsetext); Файлоответ.Показать(); Сообщить(WinHttp.Status); |
|||
12
roman2
21.05.12
✎
15:39
|
(11) у меня же SSL передача, требующая сертификата. Где здесь про сертификат?
|
|||
13
chingiz
21.05.12
✎
15:48
|
Дак ты же избавляешься от шифрования? ssl передача, но без сертификата, это как?
|
|||
14
chingiz
21.05.12
✎
15:49
|
WinHttp.Open("POST","http.... второй раз повторяю 8)
|
|||
15
smaharbA
21.05.12
✎
15:50
|
(13) Вы о чем ?
|
|||
16
smaharbA
21.05.12
✎
15:50
|
еще один потомок атиллы
|
|||
17
roman2
21.05.12
✎
15:55
|
(10) спасибо! буду пробовать.
|
|||
18
sapphire
21.05.12
✎
17:35
|
(0) А установить сертификат религия не позволяет?
|
|||
19
oleg_km
21.05.12
✎
17:53
|
(18) Я так понял урл в сертификате и урл в Open не совпадают (такой вот сервер). Допустим в сертификате online.psbank.ru, а урл filias.psbank.ru (ВСЕ СОВПАДЕНИЯ СЛУЧАЙНЫ). По-умолчанию Windows ругается. Чтобы Windows не ругалась, нужно ей сказать: не ругайся
Error Value Unknown certification authority (CA) or untrusted root 0x0100 Wrong usage 0x0200 Invalid common name (CN) 0x1000 // Вот именно эту опцию и нужно взвести Invalid date or certificate expired 0x2000 Ну вроде уже все разжевали. |
|||
20
mistеr
21.05.12
✎
18:16
|
(0) Ты во всем так торопишься? В первой теме объяснил, из-за чего твоя ошибка.
|
|||
21
roman2
21.05.12
✎
19:19
|
(20) спасибо мил человек за аргументированный ответ в первой теме.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |