0
Исправлен

Ошибка 400

Александр 4 года назад обновлен Специалист Техподдержки 4 года назад 7

Здравствуйте, при обработке запроса "api/cadaster/objectInfoFull" с параметрами:{ "query": "77%3A17%3A0110205%3A2970" } получаю ответ { "error": { "code": 400, "mess": "Missing required parameter" } }

Ответ

Ответ
Исправлен

Ок. Тогда закрываем этот тикет.

У Вас решился вопрос? Помог наш пример?

Здравствуйте, вопрос решился, информация для тех, кто будет писать на 1С:

В заголовке помимо токена обязательно добавление строки

ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");

При установке тела запроса используйте кодировку анси:

HTTPЗапрос.УстановитьТелоИзСтроки("query="+КадастровыйНомер, КодировкаТекста.ANSI);//(ЗаписьJSON.Закрыть());


Ответ
Исправлен

Ок. Тогда закрываем этот тикет.

$curl = curl_init();


curl_setopt_array($curl, array(
CURLOPT_URL => "https://apirosreestr.ru/api/cadaster/objectinfofull",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "query=46:29:101001:10",
CURLOPT_HTTPHEADER => array(
"token: AAAA-AAAA-AAAA-AAAA"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}

postDataToPHP = новый Структура;

КадНомер=СтрЗаменить(СокрЛП(КадастровыйНомер),":","%3A");
postDataToPHP.Вставить("query", КадНомер);
ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, postDataToPHP);
// 3. Создадим временный исходящий (передаваемый на сервер методом POST)
// файл, поместим в него JSON строку.
тФайл = новый ТекстовыйДокумент;
тФайл.ДобавитьСтроку(ЗаписьJSON.Закрыть()); //Пример содержания файла :{ "query": "77%3A17%3A0110205%3A2970" }
// 4. Получим имя для временного иcходящего файла. В нем будут содержаться исходящие данные в виде JSON-строки
ИмяИсходящегоФайла = ПолучитьИмяВременногоФайла(".txt" );
тФайл.Записать(ИмяИсходящегоФайла,КодировкаТекста.UTF8);
// 5. Получим имя для временного входящего файла. В нем будет получена JSON-строка: ответ сервера PHP
ИмяВходящегоФайла = ПолучитьИмяВременногоФайла(".txt" );
// 6. Установим HTTP соединение с сервером
HTTPConnect = новый HTTPСоединение("apirosreestr.ru",, Логин, Пароль,,,Новый ЗащищенноеСоединениеOpenSSL);
ИмяРесурса = "api/cadaster/objectInfoFull";
// 7. Выполним HTTP - запрос. Передадим на сервер исходящий файл (файл содержит JSON-объект, т.е исходящие параметры)
HTTPConnect.ОтправитьДляОбработки(ИмяИсходящегоФайла, ИмяРесурса, ИмяВходящегоФайла, "Token:"+Токен);
// И получим ответ от сервера (входящий файл). Файл содержит //JSON-объект (т.в возвращаемые с сервера данные)
// 8. Извелечем полученные от сервера данные из входящего файл
ФайлОтвета = новый ТекстовыйДокумент;
ФайлОтвета.Прочитать(ИмяВходящегоФайла,КодировкаТекста.UTF8);
Сообщить(ФайлОтвета.ПолучитьСтроку(2));
Сообщить(ФайлОтвета.ПолучитьСтроку(3));
Сообщить(ФайлОтвета.ПолучитьСтроку(4));
Сообщить(ФайлОтвета.ПолучитьСтроку(5));

Можете просто прислать пример запроса по objectInfoFull?

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

Здравствуйте,
на самом деле вы не передаете query параметр.
Уточните пожалуйста детали запроса.
Можете отправить нам скрипт запроса и мы посмотрим где Вы допустили ошибку.

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