0
Not a bug

Только при count = 1 в запросе возвращается пустой массив(объект)

Stas 4 years ago updated 4 years ago 12
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****key***" -d "{ \"count\": 1, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
возвращает:
{"suggestions":[]}
При том всё где ">1" по 2 и более объекта масиве:
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****" -d "{ \"count\": 2, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
{"suggestions":[{"value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","unrestricted_value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"628403","postal_box":null,"country":"Россия","region_with_type":"Ханты-Мансийский Авт
╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","region_type":"╨░╨╛","region_type_full":"╨░╨▓╤é╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│","region":"╨Ñ╨░╨╜╤é╤ï-╨£╨░╨╜╤ü╨╕╨╣╤ü╨║╨╕╨╣ ╨É╨▓╤é╨
╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨í╤â╤Ç╨│╤â╤é","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨í╤â╤Ç╨│╤â╤é","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99╨▒","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"8600001000000480006","tax_office":"8602","tax_office_legal":null,"okato":"71136000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}},{"value":"╤Ç╨╡╤ü╨┐ ╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧
сетия - Алания, г Владикавказ, ул Ардонская, д 99","unrestricted_value":"респ Северная Осетия - Алания, г Владикавказ, ул Ардонская, д 99","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"362008","postal_box":null,"country":"Россия","region_with_type":"респ Северная Осетия - Алания","region_type":"респ","region_type_full":"республик
╨░","region":"╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧╤ü╨╡╤é╨╕╤Å - ╨É╨╗╨░╨╜╨╕╤Å","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨Æ╨╗╨░╨
┤╨╕╨║╨░╨▓╨║╨░╨╖","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨Æ╨╗╨░╨┤╨╕╨║╨░╨▓╨║╨░╨╖","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"1500000100000080017","tax_office":"1513","tax_office_legal":null,"okato":"90401000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}}]}

Мне всё равно нужен первый элемент, но без count=1 нету геолокации, если я верно понял.
Under review
Добрый день!
В запросе точно указан правильный адрес?
У меня при таком запросе ответ не пустой.
Запрос:
Curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token $API_KEY" -d "{ \"count\": 1, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
Ответ:

{  "suggestions": [
    {
      "value": "г Москва, Ленинский пр-кт, д 99",
      "unrestricted_value": "г Москва, Ленинский пр-кт, д 99",
      "data": {
        "qc_complete": null,
        "qc_house": null,
        "qc_geo": "0",
        "postal_code": "119421",
        "postal_box": null,
        "country": "Россия",
        "region_with_type": "г Москва",
        "region_type": "г",
        "region_type_full": "город",
        "region": "Москва",
        "area_with_type": null,
        "area_type": null,
        "area_type_full": null,
        "area": null,
        "city_with_type": "г Москва",
        "city_type": "г",
        "city_type_full": "город",
        "city": "Москва",
        "settlement_with_type": null,
        "settlement_type": null,
        "settlement_type_full": null,
        "settlement": null,
        "street_with_type": "Ленинский пр-кт",
        "street_type": "пр-кт",
        "street_type_full": "проспект",
        "street": "Ленинский",
        "house_type": "д",
        "house_type_full": "дом",
        "house": "99",
        "block_type": null,
        "block": null,
        "flat_area": null,
        "flat_type": null,
        "flat": null,
        "fias_id": "254e6926-1074-4dd7-ab70-82535d280716",
        "kladr_id": "7700000000016890576",
        "tax_office": "7728",
        "tax_office_legal": null,
        "okato": "45293578000",
        "oktmo": "45905000",
        "geo_lat": "55.6684879",
        "geo_lon": "37.5186626",
        "unparsed_parts": null,
        "qc": null
      }
    }
  ]
}
Только что перепроверил с работы, ещё раз копирну из командной строки запрос сюда. Ещё мне показалось через апи c# пару раз так было, потом пропало(поэтому и проверять стал через командную строку). Могу скринкаст заснять, если меняешь 1 на 2, всё нормально. удалил в конце ключа пару байт.
Curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token 834fd32cb70798a72d4a779774c900a17fba****" -d "{ \"count\": 1, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
(ваш запрос с моим ключом тоже самое выдаёт, []
Покажите пожалуйста скринами, если можно, или скринкастом, как удобнее.
Вообще тут вот какая ситуация:
  • запрос с count=1 – отправка в Дадату конкретного адреса для получения информации по нему. Если Дадата считает адрес некорректным, возвращает пустой ответ.
  • запрос с count<>1 – получение списка Подсказок по запросу. Тогда Подсказки пытаются предложить корректный вариант, либо ближайший похожий. Потому ответы с разными count различаются.
Но вы посылаете в Подсказки адрес, который Дадата считает корректным, и там не должно быть пустого ответа. А мне по вашему запросу возвращается корректный ответ. Потому дайте пожалуйста скрины или скринкаст.
Разбираемся, скорее всего ответим завтра.
По поводу: "Вообще тут вот какая ситуация:"...
Т.е. чтобы гарантированно что-то ближайшее по адресу получить, мне требуется сперва вызвать без count, ЗАТЕМ нулевой эл-т ещё раз к вам отправить, но уже с count=1? (Т.к. мне адрес имеет смысл только с координатами, пускай они будут просто центром москвы, если дадата только город распознала - не беда)
Проверили запрос с вашим ключом, с count = 1 возвращает результат:
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token 834fd32cb70798a72d4a779774c900a17fba****" \
  -d '{ "query": "Москва, Ленинский пр-кт, 99", "count": 1 }' \
  https://dadata.ru/api/v2/suggest/address
Ответ:
{"suggestions":[{"value":"г Москва, Ленинский пр-кт, д 99","unrestricted_value":"г Москва, Ленинский пр-кт, д 99","data":{"qc_complete":null,"qc_house":null,"qc_geo":"0","postal_code":"119421","postal_box":null,"country":"Россия","region_with_type":"г Москва","region_type":"г","region_type_full":"город","region":"Москва","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"г Москва","city_type":"г","city_type_full":"город","city":"Москва","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"Ленинский пр-кт","street_type":"пр-кт","street_type_full":"проспект","street":"Ленинский","house_type":"д","house_type_full":"дом","house":"99","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":"254e6926-1074-4dd7-ab70-82535d280716","kladr_id":"7700000000016890576","tax_office":"7728","tax_office_legal":null,"okato":"45293578000","oktmo":"45905000","geo_lat":"55.6684879","geo_lon":"37.5186626","unparsed_parts":null,"qc":null}}]}
Надеюсь не дойдёт до того, чтобы я через wireshark в реалтайме вам показывал пакеты, но я готов)

П.С. Вы же наверняка можете отследить на своей стороне, что мне приходит [] с этим ключом, когда я делаю запрос(или история запросов-ответов какая-нить)?
Спасибо за отзывчивость, проблемма кодировки была. Можно удалять-закрывать топик.

+1
Насчет «что-то ближайшее по адресу получить» — простите, я не понимаю сценарий использования. Подсказки работают так: пользователь начинает вводить адрес, и видит список подсказок (count > 1). Он выбирает правильный вариант из списка и нажимает энтер (count = 1). Получает всю информацию по выбранному адресу.
Спасибо за разъяснение, понял.