Как отловить POST запрос (https-протокол) из 1С?
Добрый день!
Подскажите, как можно отловить POST запрос отправленный из 1С?
Настраиваю интеграцию SberBuisness API, при попытке получить Access Token получаю ответ, что часть параметров не заполнена.
Хочу посмотреть что же я им отправила.
Пытаюсь настроить WireShark, но тут вопрос: для какого браузера указывать сохранение ключа для расшифровки (Pre-Master-Secret log)?
Подскажите, как можно отловить POST запрос отправленный из 1С?
Настраиваю интеграцию SberBuisness API, при попытке получить Access Token получаю ответ, что часть параметров не заполнена.
Хочу посмотреть что же я им отправила.
Пытаюсь настроить WireShark, но тут вопрос: для какого браузера указывать сохранение ключа для расшифровки (Pre-Master-Secret log)?
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
+4 тут про отладку сервисов, но это пофик, он ловит весь трафик
https://its.1c.ru/db/metod8dev/content/5756/hdoc
(1) а так, напишите пример вашего запроса.
Доку по api, тут смотрите ?
https://sberbusinessapi-documentation.github.io/#authorize_code
Доку по api, тут смотрите ?
(7) Тут.
Вот тут не могу получить пару Access Token, Refresh Token:https://developers.sber.ru/docs/ru/sberbusinessapi/authorization/auth-sbbid/tokens
Получаю Authorization code, тут же подставляю его в POST-запрос и получаю ошибку 400:
{"error":"invalid_grant","error_description":"One of the params ('code', 'refresh_token') is required at request"}
Вот тут не могу получить пару Access Token, Refresh Token:
Получаю Authorization code, тут же подставляю его в POST-запрос и получаю ошибку 400:
{"error":"invalid_grant","error_description":"One of the params ('code', 'refresh_token') is required at request"}
ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());
Соединение = Новый HTTPСоединение("edupirfintech.sberbank.ru",9443,,,,,ssl1);
HTTPЗапрос = Новый HTTPЗапрос("ic/sso/api/v2/oauth/token");
HTTPЗапрос.Заголовки.Вставить("Content-Type", "Application/X-Www-Form-Urlencoded");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
СтруктураJSON = Новый Структура;
СтруктураJSON.Вставить("grant_type", "authorization_code");
СтруктураJSON.Вставить("code", Объект.КодАвторизации);
СтруктураJSON.Вставить("client_id", Строка("00000"));
СтруктураJSON.Вставить("redirect_uri", "https://00000/test");
СтруктураJSON.Вставить("client_secret", "00000");
ТекЗаписьJSON = Новый ЗаписьJSON;
ТекЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ТекЗаписьJSON , СтруктураJSON);
ТекстJSON = ТекЗаписьJSON.Закрыть();
HTTPЗапрос.УстановитьТелоИзСтроки(ТекстJSON, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
HTTPОтвет = Соединение.ВызватьHTTPМетод("POST",HTTPЗапрос);
Сообщить(Строка(HTTPОтвет.КодСостояния) + " " +HTTPОтвет.ПолучитьТелоКакСтроку());
Показать
(11) Пройдясь поиском по конфигурации наткнулась на ОМ ИнтеграцияССистемойВзаимодействия.
И там запрос формируется вот так:
Ну ведь тоже json подсунули, с тем же заголовком...
Ну ладно, смотрю дальше и натыкаюсь на модуль СинхронизацияСКалендаремGoogle.
И там запрос авторизации, ну прям как мой, даже параметры те же:
В общем второй вариант из синхронизации с Гуглом рабочий. В ответе наконец-то получила долгожданную пару Access Token, Refresh Token.
Благодарю за наводку!
И там запрос формируется вот так:
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПубликацииСервисаУправления);
Хост = СтруктураURI.Хост;
ПутьНаСервере = СтруктураURI.ПутьНаСервере;
Порт = СтруктураURI.Порт;
Соединение = Новый HTTPСоединение(
Хост,
Порт,
,
,
,
,
Новый ЗащищенноеСоединениеOpenSSL);
ДанныеЗапроса = Новый Структура;
ДанныеЗапроса.Вставить("control_code", КодУправления);
ДанныеЗапроса.Вставить("method", ИмяМетода);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ДанныеЗапроса);
СтрокаЗапроса = ЗаписьJSON.Закрыть();
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Запрос = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
Запрос.УстановитьТелоИзСтроки(СтрокаЗапроса);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ПоказатьНу ведь тоже json подсунули, с тем же заголовком...
Ну ладно, смотрю дальше и натыкаюсь на модуль СинхронизацияСКалендаремGoogle.
И там запрос авторизации, ну прям как мой, даже параметры те же:
ЗапросHTTP = Новый HTTPЗапрос;
ЗапросHTTP.АдресРесурса = АдресДляПолученияТокенаДоступа.ПутьНаСервере;
ЗапросHTTP.Заголовки["Content-Type"] = "application/x-www-form-urlencoded";
ЗапросHTTP.УстановитьТелоИзСтроки(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"code=%1&client_id=%2&client_secret=%3&redirect_uri=%4&grant _type=authorization_code",
КодРазрешения,
ИдентификаторПриложения.client_id,
ИдентификаторПриложения.client_secret,
ИдентификаторПриложения.redirect_uri));
ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(ЗапросHTTP);
ПоказатьВ общем второй вариант из синхронизации с Гуглом рабочий. В ответе наконец-то получила долгожданную пару Access Token, Refresh Token.
Благодарю за наводку!
(13) Конечно зависит от web сервера, но серьезные сайты используют механизм hsts, а все просмотрщики https, основаны на понижении https до http, этот механизм не позволяет встать "мужику по середине" (MitM), от этого и
(5) Ставила Fiddler. При запущенном Fiddler при отправке запроса в 1С: Ошибка установки SSL-соединения.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)