|   |   | 
| 
 | Использование 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) спасибо мил человек за аргументированный ответ в первой теме.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |