Получение остатка Wildberies по API v3

1. rennerv 08.03.23 07:10 Сейчас в теме
Здравствуйте.

Делаю запрос для получения остатка по API v3.
Возвращает код состояния 400. {"code":"IncorrectRequestBody","message":"Некорректное тело запроса"}
Подскажите, пожалуйста, где ошибка?

	Сервис    = "/api/v3/stocks/216787";
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("accept", "application/json");   
	Заголовки.Вставить("Content-Type", "application/json");
	Заголовки.Вставить("Authorization", СокрЛП(Объект.Токен)); 

    SSL_Соединение = Новый ЗащищенноеСоединениеOpenSSL();
    HTTPСоединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",443,,,,,SSL_Соединение);
	
	//интересный параметр.. не пойму ни как((  раньше было Сервис = "/api/v2/stocks?skip=0&take=1000"
	ПараметрыЗапроса = Новый Структура;
	ПараметрыЗапроса.Вставить("skus","[  ]");
    	
	JsonЗапрос = СтруктураВJson(ПараметрыЗапроса);

    //запрос
    HTTPЗапрос=новый HTTPЗапрос(Сервис,Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(JsonЗапрос, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	
	
    СостояниеWB = HTTPОтвет.ПолучитьТелоКакСтроку();
	
    Сообщить(СостояниеWB);
    Сообщить(HTTPОтвет.КодСостояния);

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 08.03.23 07:45 Сейчас в теме
(1)
ПараметрыЗапроса.Вставить("skus","[ ]");

Вот это что?
Там должны быть не просто квадратные скобки, а массив. Который уже и будет преобразован в формате json с этими скобками.
3. rennerv 08.03.23 08:09 Сейчас в теме
(2)
т.е. массив с определенными так сказать артикулами?

"skus": [
"BarcodeTest123"
]
4. spacecraft 08.03.23 10:35 Сейчас в теме
(3) в документации указано: "Массив баркодов".
При выполнении этого кода:
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("skus","[ ]");

JsonЗапрос = СтруктураВJson(ПараметрыЗапроса);

результатом будет такой тест формата json:
"skus": "[ ]"
Что совсем не то, что ожидается.
5. andenbo_kdv 11.04.23 17:44 Сейчас в теме
У меня вот так сработало:

   
    Сервис    = "/api/v3/stocks/83712";
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("accept", "application/json");   
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Authorization", СокрЛП(НастройкиДоступа.ТокенОсновной)); 

    SSL_Соединение = Новый ЗащищенноеСоединениеOpenSSL();
    HTTPСоединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",443,,,,,SSL_Соединение);
    
    ПараметрыЗапроса = Новый Структура;
    ПараметрыЗапроса.Вставить("skus", МассивБарКодов);
        
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();  
	ЗаписатьJSON(ЗаписьJSON, ПараметрыЗапроса);            
	JsonЗапрос = ЗаписьJSON.Закрыть();	

    HTTPЗапрос=новый HTTPЗапрос(Сервис,Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(JsonЗапрос, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    
    
    Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();
Показать
6. FaithNoMore 29.09.23 01:57 Сейчас в теме
HTTPОтвет.ПолучитьТелоКакСтроку() - если что-то пошло не так, здесь обычно объясняется суть ошибки.
7. user1509598 18.11.23 07:30 Сейчас в теме
А как получить все остатки. НЕ указывая Баркоды.
8. igor_1c 17 03.03.24 14:19 Сейчас в теме
там есть такая вещь как swagger. Для проверки запросов подходит. Например: https://openapi.wildberries.ru/marketplace/swagger/api/ru/#/%D0%9E%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B8/post_api_v3_stoc­ks__warehouseId_

получение остатков , так же описаны ограничения
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот