Приходит пустой ответ с dadata.ru
Всем привет! Пилю заполнение карточки контрагента по ИНН c сервиса dadata, приходит пустой запрос {"suggestions":[]}, подскажите в какую сторону копать.
Процедура ЗаполнитьПоИНН();
ИНН = Объект.ИНН;
Наименование = Объект.Наименование;
ИмяВремФайла = ПолучитьИмяВременногоФайла();
APIКлючDaData = Константы.APIКлючDaData.Получить();
//XSecreet = Константы.СекретныйКлюч.Получить();
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
//СтрокаЗапроса = "/suggestions/api/4_1/rs/suggest/party";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
//HTTPЗапрос.Заголовки.Вставить("X-Secret", XSecreet);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение
Сообщить("Произошла ошибка при отправке запроса");
КонецПопытки;
Попытка
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ТекстJSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Исключение
Сообщить("При отправке запроса произошла ошибка");
Возврат;
КонецПопытки;
Если HTTPОтвет = Неопределено Тогда
Сообщить("Получен не верный ответ от сервера dadata.ru");
ИначеЕсли HTTPОтвет.КодСостояния <> 200 Тогда
Сообщить("Получен не верный ответ от сервера dadata.ru");
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
ОтветСервера = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Если ОтветСервера.количество() = 0 Тогда
Сообщить("Ни чего не найдено");
КонецЕсли;
Сообщить(ТекстJSON);
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
(1) У меня ваш код работает
Нужный ответ приходит.
APIКлючDaData = "Указать свой токен";
ИНН = "7707782563";
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
JSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(JSON);
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
ПоказатьНужный ответ приходит.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) У меня ваш код работает
Нужный ответ приходит.
APIКлючDaData = "Указать свой токен";
ИНН = "7707782563";
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
JSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(JSON);
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
ПоказатьНужный ответ приходит.
(6)
(6)
(6)
Странно, Ваш код как раз работает...
APIКлючDaData = "Указать свой токен";
ИНН = "7707782563";
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
JSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(JSON);
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
ПоказатьИНН = "7707782563";
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
JSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(JSON);
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
(6)
(6)
Странно, Ваш код как раз работает...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот