|   |   | 
| 
 | 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 | 
        Кстати "[" и "]" в именах параметров не уверен что допустимы
 Возможно имена тоже надо кодировать | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |