Имя: Пароль:
1C
1С v8
Помогите с HTTP-запросом в Диадок
0 nabd
 
01.09.23
13:15
Есть необходимость проверить контрагентов на то, что они подключены к Диадоку.
Представляю себе такой код:
https://cloud.mail.ru/public/6cUG/ryRwGKUA5
Но честно не силен в http-запросах.
Вот описание метода: https://diadoc-sdk-api-docs.readthedocs.io/en/latest/http/GetOrganizationsByInnList.html
Возвращает код 400 с ошибкой: Can't deserialize request body into type GetOrganizationsByInnListRequest: Invalid wire-type; this usually means you have over-written a file without truncating or setting the length; see https://stackoverflow.com/q/2152978/23354
Как то нужно сформировать тело запроса, я для себя понял, что нужна структура со значением-массивом.
1 nabd
 
01.09.23
13:20
Организация по ИНН в первой части кода нормально получается, поэтому код формирования токена не вижу смысла выгладывать.
2 majkk
 
01.09.23
13:25
(0) Наверное стоит начать с чтения вот этого
https://diadoc-sdk-api-docs.readthedocs.io/en/latest/DataStructures.html
3 Pprog151713
 
01.09.23
13:34
К ут или УПП подключи стандартный модуль у них версия сейчас по-моему 4.1  он там. И посмотри, как он работает. Модуль_МетодыAPI.DD_API_GetOrganizationsByInnList(ПараметрыСервиса, InnList, myOrgId)
4 Смотрящий
 
01.09.23
13:34
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON) - это 5.
Не удивительно что сервер с ума сходит, и 400 выбрасывает
5 Смотрящий
 
01.09.23
13:36
JSONНастройкиСериализации = Новый НастройкиСериализацииJSON;
JSONНастройкиСериализации.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
JSONНастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДата;

JSONЗапись = Новый ЗаписьJSON;
JSONЗапись.УстановитьСтроку();
                    
ЗаписатьJSON(JSONЗапись, Данные, JSONНастройкиСериализации);
JSONСтрока = JSONЗапись.Закрыть(); // Для отладки
6 nabd
 
01.09.23
13:53
(2) спасибо, не хватало заголовка "Content-Type"
для GET видимо он не нужен, а для POST в данном случае обязателен.