0
Не ошибка

Ошибка 400 "mess": "Missing required parameter"

Михеев Александр Николаевич 3 года назад обновлен 3 года назад 12

Здравствуйте, при выполнении запроса из 1с



АдресСервераОнлайнПроверки = "apirosreestr.ru";
РесурсНаСервере = "/api/cadaster/search";

Попытка
Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки);
Исключение
Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" 
+ Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
Возврат;
КонецПопытки;
//формируем файл запроса
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла("txt"); 
ФайлДанных = Новый ТекстовыйДокумент;
ФайлДанных.ДобавитьСтроку("{");
ФайлДанных.ДобавитьСтроку("""query"""       + ": " + "{");
ФайлДанных.ДобавитьСтроку("""region_code""" + ": " + """24""" + ",");
ФайлДанных.ДобавитьСтроку("""raion"""       + ": " + """Норильск""" + ",");
ФайлДанных.ДобавитьСтроку("""settlement"""  + ": " + """""" + ",");
ФайлДанных.ДобавитьСтроку("""street"""      + ": " + """Рудная""" + ",");
ФайлДанных.ДобавитьСтроку("""house"""       + ": " + """19""" + ",");
ФайлДанных.ДобавитьСтроку("""building"""    + ": " + """""" + ",");
ФайлДанных.ДобавитьСтроку("""block"""       + ": " + """""" + ",");
ФайлДанных.ДобавитьСтроку("""flat"""        + ": " + """83""" + ",");
ФайлДанных.ДобавитьСтроку("},");
ФайлДанных.ДобавитьСтроку("""limit"""   + ": " + "10" + ",");
ФайлДанных.ДобавитьСтроку("""grouped""" + ": " + "0");
ФайлДанных.ДобавитьСтроку("}");
ФайлДанных.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);

// посылаем запрос
Попытка
ЗаголовокHTTP = Новый Соответствие;
ЗаголовокHTTP.Вставить("Token","AAAA-AAAA-AAAA-AAAA");
ЗаголовокHTTP.Вставить("Content-Type", "application/json");

ФайлРезультат = ПолучитьИмяВременногоФайла();

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


Исключение
Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
КонецПопытки;


получаю ответ


{
    "error": {
        "code": 400,
        "mess": "Missing required parameter"
    }
}


подскажите пожалуйса, что может быть не так и в какую сторону копать.


Ответ

Ответ

Вы разместили вопрос в форуме по ошибкам. Но по сути вы обращались в техподдержку. В следующий раз размещайте информацию в соответствии со спецификой вопроса.

И ещё, данный форум отркытый и вы опубликовали в нем свой токен, не удивляйтесь потом если обнаружите, что у вас баланс понизился.

ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от Михеев Александр Николаевич 3 года назад

Спасибо за информацию и уточнения

Ответ

Вы разместили вопрос в форуме по ошибкам. Но по сути вы обращались в техподдержку. В следующий раз размещайте информацию в соответствии со спецификой вопроса.

И ещё, данный форум отркытый и вы опубликовали в нем свой токен, не удивляйтесь потом если обнаружите, что у вас баланс понизился.

Изменил полностью запрос по примеру с вашего сайта, все тот же результат(((


АдресСервераОнлайнПроверки = "apirosreestr.ru";
РесурсНаСервере = "/api/cadaster/search";

Попытка
Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки);
Исключение
Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" 
+ Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
Возврат;
КонецПопытки;
//формируем файл запроса
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла(); 
ФайлДанных = Новый ТекстовыйДокумент;
ФайлДанных.УстановитьТекст("query=Норильск, Рудная 19, кв 83&grouped=0");
ФайлДанных.Записать(ФайлТелаЗапроса, КодировкаТекста.UTF8);

ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Token","XXXX");
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");

ФайлРезультат = ПолучитьИмяВременногоФайла();
Соединение.ОтправитьДляОбработки(ФайлТелаЗапроса, РесурсНаСервере, ФайлРезультат, ЗаголовокHTTP);

ТекстовыйФайлОтвета = Новый ТекстовыйДокумент();
ТекстовыйФайлОтвета.Прочитать(ФайлРезультат);
СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
Сообщить(СтрокаОтветаСервера);




Проверьте еще раз, пожалуйста, кажется вы не исправили, и проверьте действительно POST-ом отправляется запрос, похоже что GET-ом передается у Вас.

У Вас после последнего элемента в JSON стоит "запитая", что по правилам формата JSON недопустимо.


у Вас некорректно формируется "ФайлТелаЗапроса", чтобы было понятно где именно находится ошибка, перед отправкой запроса запишите, скопируйте и отправьте нам уже сформированный "ФайлТелаЗапроса"

На рассмотрении

Каким способом Вы передаете запрос методом GET или POST?

Сервис поддержки клиентов работает на платформе UserEcho