Имя: Пароль:
1C
1С v8
не получается выполнить POST запрос
, ,
0 Ruslan_
culeiman
 
23.08.19
07:21
Приветствую, в общем есть api, прогер от сайта кинул такой пример говорит что все проходит отлично (curl -d "_token=123456" -X POST http://sanstore.crm.instaboss.kz/api/add-clients), у меня же с 1С не получается сделать запрос, подскажите что делаю не так или проблема со стороны прогера?

Соединение = Новый HTTPСоединение("sanstore.crm.instaboss.kz", 80);
ФайлОтвета = ПолучитьИмяВременногоФайла();
    
HTTPЗапрос = Новый HTTPЗапрос("api/add-clients/_token=123456");
    
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
    
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("_token");
ЗаписьJSON.ЗаписатьЗначение("123456");    
ЗаписьJSON.ЗаписатьКонецОбъекта();
    
СтрокаТела = ЗаписьJSON.Закрыть();    
    
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаТела);
Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос, ФайлОтвета);
1 ДенисЧ
 
23.08.19
07:23
Третий параметр в УстановитьТелоИзСтроки установи в неиспользовать. ПОпробуй.
2 MyNick
 
23.08.19
07:39
Дык токен то для примера.
3 Ruslan_
culeiman
 
23.08.19
07:49
(1) попробовал, также
HTTPЗапрос = Новый HTTPЗапрос("api/add-clients/_token=123456"); делаю так возвращает код состояния 302
HTTPЗапрос = Новый HTTPЗапрос("api/add-clients); делаю так возвращает 500
4 Ruslan_
culeiman
 
23.08.19
07:50
(2) это тестовый сервак, другого токена и не давал прогер
5 Fram
 
23.08.19
07:54
попробуй так

HTTPЗапрос = Новый HTTPЗапрос("api/add-clients");
HTTPЗапрос.УстановитьТелоИзСтроки("_token=123456");
6 Ruslan_
culeiman
 
23.08.19
08:24
(5) попробовал, также(
7 Fram
 
23.08.19
08:27
(6) что значит "также"..

сам то curl пробовал со своего компа?
8 Fram
 
23.08.19
08:33
(6) попробуй еще так

HTTPЗапрос.УстановитьТелоИзСтроки(КодироватьСтроку("_token=123456", СпособКодированияСтроки.КодировкаURL));
9 Irbis
 
23.08.19
08:36
(8) Можно ещё по колёсам попинать. Кириллицы нет, зачем кодировать?
10 Irbis
 
23.08.19
08:37
(9)+ Нужно описание API запросить и делать как написано.
11 ДенисЧ
 
23.08.19
08:50
(3)
Запрос.УстановитьТелоИзСтроки(стрЗАпрос, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Я говорил про третий (!!!) параметр
12 Ruslan_
culeiman
 
23.08.19
13:28
Добавил заголовок, все взлетело. А заголовок узнал какой надо добавить через программу postman. Всем спасибо

    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
    
    Соединение = Новый HTTPСоединение("sanstore.crm.instaboss.kz", 80);
    ФайлОтвета = ПолучитьИмяВременногоФайла();
    
    HTTPЗапрос = Новый HTTPЗапрос("api/add-clients", Заголовки);
    
    HTTPЗапрос.УстановитьТелоИзСтроки("_token=123456");
    Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос, ФайлОтвета);