Google GeoLocate API示例JSON

时间:2015-07-23 23:20:18

标签: json google-geolocation

Google是否更改了GeoLocation api而未更新文档?

我一直在关注以下页面的示例代码

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

我将示例请求粘贴到我的系统上名为ex.json的文件中。我仔细检查了我的Google Maps Geolocation API是否设置为on并执行了以下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,并且文档说所有字段都是可选的。我缺少什么,是在编写文档后添加了一些必填字段?

2 个答案:

答案 0 :(得分:2)

Curl需要“-X POST”作为额外参数。像这样工作:

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

答案 1 :(得分:0)

找到解决方案,这是一个愚蠢的错误: -

我的文件名是“sampledata.json”我将其更改为“@ sampledata.json”

我尝试了三种不同的curl命令。我得到了回应。