Имя: Пароль:
1C
1С v8
Post запрос
0 vaneSySs
 
20.11.18
13:40
Всем привет!
Помогите разобраться с post запросом.
https://documenter.getpostman.com/view/2625849/kadnet-api/6tgTfhm#26b4ac9c-ff43-daf2-72c3-8f3a8c09293b

Вроде простенький код
Соединение = Новый HTTPСоединение("api.kadnet.ru");
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
Запрос = Новый HTTPЗапрос("/v2/Requests/CheckNumbers?Api-Key=f04b7bf1-320d-43f7-b906-9d7a71998c38",ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки("Query=66%3A06%3A4501018%3A305%3B66%3A06%3A4501018%3A2131&Comment=%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B3%D0%BE%D0%BD");
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8");

Но в ответ всегда возвращается 401. Что я делаю не так?)
1 Numerus Mikhail
 
20.11.18
13:42
Код ответа на статус ошибки  HTTP 401 Unauthorized клиента указывает, что запрос не был применен, поскольку ему не хватает действительных учетных данных для целевого ресурса.

Попробуй отправить этот запрос через какой-нибудь анализатор трафика и посмотри, какие заголовки/параметры передаются.
2 Lexey_
 
20.11.18
13:49
(0) а где https(ЗащищенноеСоединениеOpenSSL)?
3 vaneSySs
 
20.11.18
13:54
(1)
Сложно как то))
(2) С ним тоже самое
4 Lexey_
 
20.11.18
13:56
(3) ОтветВВидеСтроки пробовал читать?
5 vaneSySs
 
20.11.18
13:56
(4) Точняк, ключ не найден(
6 vmlspb
 
20.11.18
13:57
АдресТекст = ТвойАдресСайта;
    АдресСтраницы = "/api/integration/load?type="+КатегорияСтрока;
    ПользовательПароль = "Пользователь:Пароль";
    
    СоединениеHTTP = Новый HTTPСоединение(АдресТекст,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
    
    ЗаголовкиHTTP = Новый Соответствие();
    ЗаголовкиHTTP.Вставить("Authorization","Basic "+ЗакодироватьBase64(ПользовательПароль));
    ЗаголовкиHTTP.Вставить("Content-Type","text/xml");
    
    ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницы,ЗаголовкиHTTP);
        
    ЗапросHTTP.УстановитьТелоИзСтроки(ТелоPOST(ПолноеИмяФайла));
    
    ОтветHTTP = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
    
    Возврат ОтветHTTP;
7 arsik
 
гуру
20.11.18
14:03
(6) Да ему достаточно наверно
ЗаголовокHTTP.Вставить("Api-Key", "f04b7bf1-320d-43f7-b906-9d7a71998c38");
или типа такого, только ключь надо декодировать
Запрос.УстановитьТелоИзСтроки("Api-Key=f04b7bf1-320d-43f7-b906-9d7a71998c38&Query=66%3A06%3A4501018%3A305%3B66%3A06%3A4501018%3A2131&Comment=%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B3%D0%BE%D0%BD");
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший