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,并且文档说所有字段都是可选的。我缺少什么,是在编写文档后添加了一些必填字段?
答案 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命令。我得到了回应。