Invalid value type 'string' при подключении по API

1. user1202776 02.03.21 18:24 Сейчас в теме
Пытаюсь подключиться по API, но выдает ошибку {"httpCode":"400","httpMessage":"Bad Request","moreInformation":"[JSV0001] Invalid value type 'string'."}
 АдресСервера = "dev.api.sberbank.ru";
    АдресРесурса = "/ru/prod/tokens/v2/oauth";
    
    Соединение = Новый HTTPСоединение(АдресСервера, 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
    

	
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Accept", "application/json");
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
	Заголовки.Вставить("Authorization", "Basic ....................................................");

    Заголовки.Вставить("RqUID", "e9FAE9fcee76276Ffdeb11b8A4Dde85e");
    Заголовки.Вставить("x-ibm-client-id", "........................");
    
    ДанныеТелаСтрокой = "grant_type=client_credentials&scope=https://api.sberbank.ru/rating/partner/legal";
    
    Запрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
    Запрос.УстановитьТелоИзСтроки(ДанныеТелаСтрокой);
    
    ОтветСервера = Соединение.ОтправитьДляОбработки(Запрос);
    Тело = ОтветСервера.ПолучитьТелоКакСтроку();
	//Сообщить(ОтветСервера.КодСостояния);
    Сообщить(Тело);
	
    Соединение = Неопределено;
Показать

Что может не являться строкой и из-за чего может выдавать такую ошибку?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 02.03.21 18:55 Сейчас в теме
(1)
Заголовки.Вставить("Authorization", "Basic ....................................................");

Вот тут после Basic что? Должно быть:
Необходимо в поле указать слово "Basic" и через пробел передать закодированные в BASE64 значения client id и client secret разделенные двоеточием (Basic client id:client secret).
Есть оба значения разделенные двоеточием?
3. user1202776 02.03.21 19:20 Сейчас в теме
(2)Да. "Basic clieint id:client secret). Двоеточие тоже кодируется в Base64
4. koln 03.03.21 07:14 Сейчас в теме
(3)Попробуйте заголовок Basic вообще исключить, а логин и пароль прописать в строке
Соединение = Новый HTTPСоединение(АдресСервера, 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
5. user1202776 03.03.21 17:10 Сейчас в теме
(4)Если так сделать и зашифровать в base64,выдает ошибку {"httpCode":"401","httpMessage":"Unauthorized","moreInformation":"Mismatch client ID: Authorization != X-Ibm-Client-ID"}
, а если не шифровать, выдает ошибку как в теме: {"httpCode":"400","httpMessage":"Bad Request","moreInformation":"[JSV0001] Invalid value type 'string'."}
8. koln 04.03.21 06:42 Сейчас в теме
(5)1. Шифровать ничего не нужно, вставляйте логин и пароль как есть.
2. А если, к примеру, данный запрос отправить через Postman, ответ корректный?
9. user1202776 04.03.21 09:08 Сейчас в теме
(8) без шифровки тоже пробовал. Выдает ошибку {"httpCode":"401","httpMessage":"Unauthorized","moreInformation":"Mismatch client ID: Authorization != X-Ibm-Client-ID"}
Postman у меня нет.
6. spacecraft 03.03.21 18:41 Сейчас в теме
(3) если ничего в теле не отправлять? Такая же ошибка?
7. user1202776 03.03.21 19:08 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот