Имя: Пароль:
1C
1С v8
1С 8.3 GET-переменная в POST-запросе
0 Шевген
 
13.07.19
13:45
Нужно отправить данные в формате JSON POST-запросом, но есть нюанс. Отправлять нужно по URL, в котором есть некая переменная AuthToken: "https://domain.ru/blabla/bla?AuthToken=MyToken";

Код такой:

    ЗаписьJSON = Новый ЗаписьJSON;
    тПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);  
    ЗаписьJSON.УстановитьСтроку(тПараметрыJSON);
    
    ЗаписатьJSON(ЗаписьJSON, СтруктураЧекаКОтправке); //В СтруктураЧекаКОтправке - структура с данными
    СтрокаJS = ЗаписьJSON.Закрыть();
    
    HTTPСоединение = Новый HTTPСоединение("domain.ru", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    запросPOST = Новый HTTPЗапрос("POST");
    запросPOST.АдресРесурса = "/blabla/bla?AuthToken" = AuthToken; В переменно AuthToken - мой токен для доступа к данным
    запросPOST.Заголовки.Вставить("Content-type", "application/json; charset=utf-8");
    запросPOST.УстановитьТелоИзСтроки(СтрокаJS, "utf-8", ИспользованиеByteOrderMark.НеИспользовать);

    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(запросPOST);

Но приходит ответ ошибка авторизации. Как передать эту переменную в Post-запросе?
Этот токен используется, чтобы не передавать куки, перед отправкой данных, я подключаюсь к сайту по логину и паролю и получаю этот токен.
1 Шевген
 
13.07.19
13:47
Неправильно строчку написал:

запросPOST.АдресРесурса = "/blabla/bla?AuthToken=" + AuthToken;
2 ДенисЧ
 
13.07.19
14:44
А елси токен в пост-теле передать?
BTW - у меня к такому же, но другому, ресурсу вполне передаётся токен в гете, а тело жисоном в посте.

Если не прокатывает - или ловить запрос от работающей страницы и смотреть, что там и как, или в техподдержку
3 Шевген
 
13.07.19
14:48
Да счас проверил, похоже, это с сайтом проблема.
Я просто не знал, можно ли передавать POST-запрос, а токен в GET'е.

Спасибо. В понедельник попробую потеребить службу поддержки