Имя: Пароль:
1C
1С v8
SSL POST запрос 1с 8.2. Проблема
,
0 Nesh
 
12.07.13
01:16
Необходимо сделать такой пост запрос:

POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded

code=4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu&
client_id=8819981768.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri=https://oauth2-login-demo.appspot.com/code&;
grant_type=authorization_code

в 1С такой код:

Сервер = "accounts.google.com";
   Ресурс = "/o/oauth2/token";
   ссл = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),Новый СертификатыУдостоверяющихЦентровWindows());
   
   Соединение = Новый HTTPСоединение(Сервер,,,,,,ссл);
   ФайлЗапроса = ПолучитьИмяВременногоФайла();
   ТекстовыйФайл = Новый ТекстовыйДокумент;
   ПараметрыЗапроса = "?code="+КодДоступа+"&";
   ПараметрыЗапроса = ПараметрыЗапроса+АйДиКлиента+СекретКлиента+ПереадресацияУРЛ+"grant_type=authorization_code";
   ТекстовыйФайл.УстановитьТекст(ПараметрыЗапроса);
   ТекстовыйФайл.Записать(ФайлЗапроса);
   ФайлРезультата = ПолучитьИмяВременногоФайла();
   Заголовки = Новый Соответствие;
   Заголовки.Вставить("Host","accounts.google.com");
   Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
   
   Соединение.ОтправитьДляОбработки(ФайлЗапроса,Ресурс,ФайлРезультата,Заголовки);
   
   Ответ = Новый ТекстовыйДокумент();
   Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
   ПолеДокумента = Ответ.ПолучитьТекст();

в итоге возвращает ошибку 400.

ЧЯДНТ?

может кто-то даст пример работы с новым объектом HTTPЗапрос, буду благодарен
1 Nesh
 
12.07.13
01:22
проблема решена, тут  ПараметрыЗапроса = "?code="+КодДоступа+"&"; лишний символ "?"
2 Чайник Рассела
 
12.07.13
02:10
поставь 8.3. оно поддерживает SLL
Основная теорема систематики: Новые системы плодят новые проблемы.