You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中OkHttp请求参数未添加导致Google Geocoding API请求失败

问题根源及解决办法
  • Google Geocoding API仅支持GET请求传递参数,不接受POST方式的表单提交。你用FormBody.Builder构建的是POST请求的表单参数,这些参数不会被API识别,自然会返回“缺少必要参数”的错误。
  • 另外,request.toString()只打印baseUrl是因为POST请求的参数存放在请求体里,不会拼在URL上,这是正常现象,但核心问题还是请求方式用错了。

修正方案

把请求方式改成GET,将address、key、region这些参数直接通过URL查询字符串传递,用OkHttp的HttpUrl.Builder构建带参数的URL更规范:

// 构建带参数的请求URL
HttpUrl url = new HttpUrl.Builder()
    .scheme("https")
    .host("maps.googleapis.com")
    .addPathSegment("maps")
    .addPathSegment("api")
    .addPathSegment("geocode")
    .addPathSegment("json")
    .addQueryParameter("address", 你的地址参数)
    .addQueryParameter("key", 你的API密钥)
    .addQueryParameter("region", 你的区域参数)
    .build();

// 构建GET请求
Request request = new Request.Builder()
    .url(url)
    .build(); // 默认就是GET请求,可省略.get()

这样参数会被正确传递给API,就能正常获取经纬度数据了。

内容的提问来源于stack exchange,提问作者zxcisnoias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:32:35