|
|
|
API запрос на сайт ABCP | ☑ | ||
|---|---|---|---|---|
|
0
Обизян
31.10.25
✎
13:05
|
Может кто-то работал в апишкой abcp, пытаюсь отправить заказ поставщику, но ловлю ошибку 500
ТекстЗапроса = "&orderParams[shipmentAddress]=FD765B07-2B9E-11E9-A2C9-005056802F4C&orderParams[paymentMethod]=2&orderParams[shipmentMethod]=1&orderParams[shippingDateLast]=1&orderParams[transportType]=1&positions[0][id]=98989898&positions[0][positionParams][comment]=тест"
ФрагментЗапроса = "userlogin=api@abcp****&userpsw=d07**************9c" + ТекстЗапроса;
HTTPСоединение = Новый HTTPСоединение("abcp****.public.api.abcp.ru",,,,,, Новый ЗащищенноеСоединениеOpenSSL());//, , Пользователь, Пароль);
HTTPЗапрос = Новый HTTPЗапрос("/cp/orders/online");
HTTPЗапрос.УстановитьТелоИзСтроки(ФрагментЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяВыходногоФайла);
КодСостояния = HTTPОтвет.КодСостояния;
Исключение
ТекстСообщения = "Код ошибки"+КодСостояния+"ошибка получения заказов:"+ОписаниеОшибки();
сообщить(ТекстСообщения);
возврат;
КонецПопытки; |
|||
|
1
Волшебник
31.10.25
✎
13:16
|
||||
|
2
Обизян
31.10.25
✎
13:18
|
я когда им скидываю текст запроса, они говорят что когда его пробуют, у них все хорошо
|
|||
|
3
Волшебник
31.10.25
✎
13:21
|
(2) Пусть покажут логи сервера, когда Вы им делаете запрос. Скажите им свой IP-адрес, они по нему пошукают error.log для своего веб-сервера
|
|||
|
4
Обизян
31.10.25
✎
13:22
|
хорошая мысль, спасибо
|
|||
|
5
Garykom
гуру
31.10.25
✎
13:32
|
вот эта хрень
ТекстЗапроса = "&orderParams[shipmentAddress]=FD765B07-2B9E-11E9-A2C9-005056802F4C&orderParams[paymentMethod]=2&orderParams[shipmentMethod]=1&orderParams[shippingDateLast]=1&orderParams[transportType]=1&positions[0][id]=98989898&positions[0][positionParams][comment]=тест"
некорректное содержимое для "application/x-www-form-urlencoded" |
|||
|
6
Garykom
гуру
31.10.25
✎
13:33
|
И кстати даже логин с паролем кстати енкодить!
Там могут быть служебные символы типа "=" или "&" |
|||
|
7
Обизян
31.10.25
✎
13:34
|
(5) а что с ней не так, поддержка написала что надо в url кодировке передавать
|
|||
|
8
Garykom
гуру
31.10.25
✎
13:34
|
||||
|
9
Обизян
31.10.25
✎
13:36
|
я использовал КодироватьСтроку, чот тоже не завелось(
|
|||
|
10
Обизян
31.10.25
✎
13:37
|
а необходимо
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); использовать вместе с КодироватьСтроку? |
|||
|
11
Garykom
гуру
31.10.25
✎
13:37
|
ФрагментЗапроса = КодироватьСтроку(ФрагментЗапроса, СпособКодированияСтроки.КодировкаURL); HTTPЗапрос.УстановитьТелоИзСтроки(ФрагментЗапроса); |
|||
|
12
Garykom
гуру
31.10.25
✎
13:42
|
(11)+ Точнее конечно не так
Надо КодироватьСтроку не целиком а все отдельные значения которые вставляешь в итоговую Значение1Кодированное = КодироватьСтроку(Значение1, СпособКодированияСтроки.КодировкаURL); Значение2Кодированное = КодироватьСтроку(Значение2, СпособКодированияСтроки.КодировкаURL); ТелоЗапроса = "value1="+Значение1Кодированное+"&"+"value2="+Значение2Кодированное; HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса); |
|||
|
13
Обизян
31.10.25
✎
13:42
|
(11) а так выходит ошибка 400
|
|||
|
14
Обизян
31.10.25
✎
13:43
|
(12) ага, сейчас попробую только значения закодировать тогда
|
|||
|
15
Garykom
гуру
31.10.25
✎
13:48
|
Кстати "[" и "]" в именах параметров не уверен что допустимы
Возможно имена тоже надо кодировать |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |