![]() |
|
v7: Получение всех заказов с WB | ☑ | ||
---|---|---|---|---|
0
zenon46
10.10.25
✎
16:12
|
Господа, доброго времени суток. Понадобилось загрузить с WB все заказы с начала года, которые complete.
На первом проходе все получается как нужно, на втором выдается ошибка 400 (не верная ссылка), пересмотрел отладчиком, вроде бы все как нужно next и следующая дата уходят как надо. Куда копать ? Сделал так : next = 0; ДатаНачалаЗапроса = ПолучитьДатуЧисло(2025,01,01,00,00,00); Пока 1 = 1 Цикл текСсылка = "orders?limit=1000&next="+next+"&dateFrom="+ДатаНачалаЗапроса+""; Карлик.УстановитьПараметр("HTTPHEADER","Authorization: ТОКЕН"); Карлик.УстановитьПараметр("HTTPHEADER","Content-type: application/json; charset=utf-8"); Карлик.УстановитьПараметр("URL","marketplace-api.wildberries.ru/api/v3/"+текСсылка); Приемник = Карлик.Приемник; Приемник.Тип = 1; Приемник.Данные = глПолучитьПутьРабочегоСтола()+"\"+"Answer.json"; КодВозврата = Карлик.Выполнить(); Если КодВозврата <> 200 Тогда глСервис.ИконкаПредупреждения(1,1,1); Предупреждение("Ошибка при загрузке заказов в сайта!",15); СтатусВозврата(0);Возврат; КонецЕсли; UTF8_Win1251(); тестJSON = глРазборJSON(глПолучитьПутьРабочегоСтола()+"\"+"Answer.json"); Если тестJSON.orders.Количество() > 0 Тогда ОбщееКоличиствоЗаказов = тестJSON.orders.Количество(); Для i = 0 По (ОбщееКоличиствоЗаказов-1) Цикл текЗначИЗ_JSON = тестJSON.orders.Получить(i); тзТест.НоваяСтрока(); тзТест.ДатаЗаказа = текЗначИЗ_JSON.createdAt; КонецЦикла; ИначеЕсли тестJSON.orders.Количество() = 0 Тогда Прервать; КонецЕсли; КрайняяДатаПолученияЗаказа = тзТест.ДатаЗаказа; Год = Лев(КрайняяДатаПолученияЗаказа,4); КрайняяДатаПолученияЗаказа = СтрЗаменить(КрайняяДатаПолученияЗаказа,Год+"-",""); Мес = Лев(КрайняяДатаПолученияЗаказа,2); КрайняяДатаПолученияЗаказа = СтрЗаменить(КрайняяДатаПолученияЗаказа,Мес+"-",""); День = Лев(КрайняяДатаПолученияЗаказа,2); next = Число(тестJSON.next); ДатаНачалаЗапроса = ПолучитьДатуЧисло(Число(Год),Число(Мес),Число(День),00,00,00); КонецЦикла; |
|||
1
Bigbro
10.10.25
✎
19:32
|
я бы дату проверил, вдруг там дата месяц наоборот. чем черт не шутит все эти форматы по своему выбирают.
|
|||
2
dedmoroz777
10.10.25
✎
19:47
|
Не меняй дату в цикле
|
|||
3
Злопчинский
11.10.25
✎
13:03
|
Может таймаут влепить между запросами?
|
|||
4
Кир Пластелинин
11.10.25
✎
15:26
|
(3) если б было много запросов, то wb вернул 429 код, а тут 400
|
|||
5
Bigbro
12.10.25
✎
10:36
|
поставь точку останова, поймай ссылку, которая на втором проходе, посмотри ее глазами и вбей в браузер руками.
что будет? |
|||
6
MWWRuza
гуру
12.10.25
✎
09:36
|
А что это за тип запроса вообще? В смысле, "GET", "POST" или еще что-то?
Ты не пропустил случаем установку этого параметра? А то, может, на первом проходе он что-то по умолчанию подтягивает, а на последующих, после отработки первого запроса, "умолчание" сбивается? Сам запрос похож на тот, которым я в ЭДО лайт от ЧЗ список документов получаю, но, там у меня четко этот параметр устанавливается: Карлик.УстановитьПараметр("CUSTOMREQUEST", Тип); Где в данном случае, "Тип" это "GET", просто запрос карликом у меня вынесен в отдельную функцию ГМ (просто он у меня очень много где используется, и функция универсальная), и его тип передается параметром из места, откуда она вызывается, в зависимости от того, какой тип у этого запроса должен быть... PS Помню, в процессе отладки я где-то перепутал тип, и как раз ошибка 400 возвращалась, а в комментарии что-то типа "неверный запрос" или на подобии. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |