Ошибка синтаксического анализа в примере API Google GeoLocate JSON

Изменил ли Google свой API GeoLocation и не обновил документацию?

Я следил за их примерным кодом дословно со следующей страницы.

https://developers.google.com/maps/documentation/geolocation/intro

Я вставил образец запроса в файл ex.json в своей системе. Я дважды проверил, что мой API геолокации Google Maps включен, и выполнил следующую команду curl

curl -d ex.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=[My key, yes I pasted my actual key in]"

Я получил следующий ответ

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "parseError",
    "message": "Parse Error"
   }
  ],
  "code": 400,
  "message": "Parse Error"
 }
}

Что, согласно документации, означает, что с предоставленным примером json что-то не так. Просто для полноты пример json выглядит так:

{
 "homeMobileCountryCode": 310,
 "homeMobileNetworkCode": 260,
 "radioType": "gsm",
 "carrier": "T-Mobile",
 "cellTowers": [
  {
   "cellId": 39627456,
   "locationAreaCode": 40495,
   "mobileCountryCode": 310,
   "mobileNetworkCode": 260,
   "age": 0,
   "signalStrength": -95
  }
 ],
 "wifiAccessPoints": [
  {
   "macAddress": "01:23:45:67:89:AB",
   "signalStrength": 8,
   "age": 0,
   "signalToNoiseRatio": -65,
   "channel": 8
  },
  {
   "macAddress": "01:23:45:67:89:AC",
   "signalStrength": 4,
   "age": 0
  }
 ]
}

JsonLint подтвердил, что это правильный Json, а в документации сказано, что все поля являются необязательными. Что я упустил, было ли добавлено какое-то обязательное поле после того, как документация была написана?


person JME    schedule 23.07.2015    source источник


Ответы (2)


Curl нуждается в "-X POST" в качестве дополнительного параметра. Работает так:

curl 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOURKEY' -X POST -H "Content-Type: application/json" -d @yourjsonfile.json
person MPW    schedule 02.06.2016

Нашел решение, это была глупая ошибка: -

мое имя файла было «sampledata.json», я изменил его на «@sampledata.json»

Я пробовал с тремя разными командами curl. Я получил ответ.

person kaishav trehan    schedule 27.10.2016