Имя: Пароль:
IT
Веб-мастеринг
Кто-нибудь делал обмен с webasyst? Запросы получения данных проходят, а update неработают.
,
0 RetardedToBoot
 
30.12.20
00:28
Понадобилось тут сделать выгрузку на сайт остатков. Сайт на webasyst.
Делаю через REST (до этого я не знал что это такое, да и сейчас не очень).

Когда делаю запрос api.php/shop.product.getInfo?id=123456&access_token=XXX
он корректно возвращает сведенья о товаре.

Когда же пытаюсь сделать запрос на изменение
api.php/shop.product.update?id=123456&access_token=XXX
то на сайте ничего не меняется, хотя возвращает состояние 200 (successful).

Дополнительный параметр count=10 пытался и в запрос прилепить и в тело запроса
через json - ничего не помогает.
1 RetardedToBoot
 
30.12.20
00:40
Причем в документации

https://developers.webasyst.ru/api/explorer/shop/shop.product.update/

про параметр id написано что он GET,
а параметр count он POST - как такое может быть в одном запросе?
2 palsergeich
 
30.12.20
01:03
(1) Это не один запрос.
Даны параметры и к какомц виду операции он относится.
3 palsergeich
 
30.12.20
01:04
Для обновления - тебе нужен POST
4 RetardedToBoot
 
30.12.20
01:12
А как выполнить два запроса? Мне кажется только использования одного подключения здесь не достаточно. Через какой механизм, как мне его обозвать что бы гугл мне его нашел?
5 palsergeich
 
30.12.20
01:13
(4) Сам то запрос как выглядит?
6 RetardedToBoot
 
30.12.20
01:15
Как вариант пробовал так и через POST и через GET:

/api.php/shop.product.update?id=123456&access_token=XXX&count=10

плюс там еще в начале доменное имя. access_token это идентификатор доступа, что-то вроде аутентификации. Подобный вариант на запрос инфы с сайта проходит.
7 RetardedToBoot
 
30.12.20
01:17
id=123456 - это идентификатор товара, который запрашиваю или меняю.
8 palsergeich
 
30.12.20
01:22
Голоса в моей голове говорят.
Нужен пост запрос
То что помечено как гет - в адресную строку.
То что ПОСТ - Json с новыми значениями в теле запроса.
Ну так по крайней мере другие апи работают
9 RetardedToBoot
 
30.12.20
01:28
Вопрос решился. Оказалось сайт хотел пост-параметры простым текстом, а я ему давал через json - с инета передрал такой вариант. Вместо application/json сделал application/x-www-form-urlencoded, и заработало.
10 palsergeich
 
30.12.20
01:32
(9) Странное апи
11 RetardedToBoot
 
30.12.20
01:33
>Странное апи

Полностью согласен.

т.е.:

Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");

ма = новый Массив;
для каждого пар из ОтправляемыеДанные цикл
    ма.Добавить(""+пар.ключ+"="+пар.Значение);
КонецЦикла;

СтрокаДляТела = СтрСоединить(ма, "&");
ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
12 RetardedToBoot
 
30.12.20
02:40
небольшое уточнение для будущих копи-паставщиков:

        ма = новый Массив;
        для каждого пар из ОтправляемыеДанные цикл
            ма.Добавить(""+пар.ключ+"="+КодироватьСтроку(пар.Значение, СпособКодированияСтроки.КодировкаURL));
        КонецЦикла;
        СтрокаДляТела = СтрСоединить(ма, "&");