|
POST запрос к порталу | ☑ | ||
---|---|---|---|---|
0
Mankubus
10.12.14
✎
14:40
|
Здрасьте!
имеем описание: Взаимодействие клиента с Порталом осуществляется по протоколу HTTPS в соответствии со схемой «запрос – ответ». Запрос клиента к Порталу выполняется методом POST, необходимые данные передаются в параметрах POST-запроса. Запросы к Порталу должны направляться на следующий адрес: https://ssl.croinform.ru:450/api код: АдресСервиса = "ssl.croinform.ru"; АдресРесурса = "/api.test"; СтрокаПараметров = "&Type=Login&Login=testAutomatUser&Password=testAutomatUser"; ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); //ssl = Новый ЗащищенноеСоединениеOpenSSL( // Новый СертификатКлиентаWindows( // СпособВыбораСертификатаWindows.Выбирать), // Новый СертификатыУдостоверяющихЦентровWindows()); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса + СтрокаПараметров,ЗаголовокHTTP); HTTPСоединение = Новый HTTPСоединение(АдресСервиса,450,,,,,); Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение Сообщить("Ошибка при отправке запроса: " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; в исключение не падает, но fiddler сообщает: [Fiddler] ReadResponse() failed: The server did not return a response for this request. Server returned 0 bytes. что не так? |
|||
1
zva
10.12.14
✎
14:52
|
HTTPСоединение = Новый HTTPСоединение(АдресСервиса,450,,,,,);
Там последний параметр Истина должен быть, что соединение защищенное (https) |
|||
2
Поpyчик-4
10.12.14
✎
15:00
|
(0) Параметры POST-запроса надо отправлять по другому.
|
|||
3
Garykom
гуру
10.12.14
✎
15:03
|
(0) у поста не заголовок, у него тело, в отличие от гета
т.е. параметры в тело засунь |
|||
4
Mankubus
10.12.14
✎
15:51
|
(1) там не Истина, а
ЗащищенноеСоединение (SecureConnection) Использование: Только чтение. Описание: Тип: ЗащищенноеСоединениеOpenSSL; ЗащищенноеСоединениеNSS; Неопределено. Содержит объект защищенного соединения для осуществления HTTPS соединения, если указан. если передавать в этот параметр: ssl = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows( СпособВыбораСертификатаWindows.Выбирать), Новый СертификатыУдостоверяющихЦентровWindows()); , то получаю ошибку HTTPS handshake to ssl.croinform.ru failed. System.Security.Authentication.AuthenticationException Ошибка вызова SSPI, см. внутреннее исключение. < Предоставленные пакету учетные данные не были распознаны |
|||
5
Mankubus
10.12.14
✎
15:52
|
(2) , (3) сделал, но ошибка та же. вот код:
Соединение = Новый HTTPСоединение("ssl.croinform.ru",450,,,,,); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос = Новый HTTPЗапрос("/api.test",ЗаголовокHTTP); Запрос.УстановитьТелоИзСтроки("&Type=Login&Login=testAutomatUser&Password=testAutomatUser"); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8"); |
|||
6
oleg_km
10.12.14
✎
15:55
|
Запрос.УстановитьТелоИзСтроки("&Type=Login&Login=testAutomatUser&Password=testAutomatUser");
Первый & не нужен там не Истина, а ЗащищенноеСоединение (SecureConnection) ну так установи этот параметр, а то судя по всему SSL не работает |
|||
7
Mankubus
10.12.14
✎
16:05
|
(6) код:
ssl = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows( СпособВыбораСертификатаWindows.Выбирать), Новый СертификатыУдостоверяющихЦентровWindows()); Соединение = Новый HTTPСоединение("ssl.croinform.ru",450,,,,,ssl); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос = Новый HTTPЗапрос("/api.test",ЗаголовокHTTP); Запрос.УстановитьТелоИзСтроки("Type=Login&Login=testAutomatUser&Password=testAutomatUser"); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8"); ошибка 1с: {Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки) Ответ = Соединение.ОтправитьДляОбработки(Запрос); по причине: Ошибка работы с Интернет: Server returned nothing (no headers, no data) ошибка fiddler: fiddler.network.https> HTTPS handshake to ssl.croinform.ru failed. System.Security.Authentication.AuthenticationException Ошибка вызова SSPI, см. внутреннее исключение. < Предоставленные пакету учетные данные не были распознаны что-то с сертификатом? |
|||
8
Mankubus
10.12.14
✎
16:28
|
в параметр ssl передаю файлы сертификатов, теперь вот такая ошибка в логах:
19:25:18:3944 !SecureClientPipeDirect failed: System.Security.Authentication.AuthenticationException Ошибка вызова SSPI, см. внутреннее исключение. < Цепочка сертификатов выпущена центром сертификации, не имеющим доверия on pipe to (CN=ssl.croinform.ru, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com). |
|||
9
oleg_km
10.12.14
✎
16:35
|
(9) попробуй без фидлера
|
|||
10
ramir
10.12.14
✎
17:30
|
Попробуй вот так
ssl = Новый ЗащищенноеСоединениеOpenSSL(); api яндекс директа кушает |
|||
11
Mankubus
11.12.14
✎
08:17
|
(9) ничего не меняется
|
|||
12
Mankubus
11.12.14
✎
08:18
|
(10) не взлетает
Ошибка работы с Интернет: Ошибка инициализации SSL-соединения |
|||
13
Поpyчик-4
11.12.14
✎
10:16
|
(12) Это уже ошибка или платформы или на стороне сервера.
|
|||
14
Поpyчик-4
11.12.14
✎
10:20
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |