关于JAVA调用高德地图Api引发的问题思考

在尝试使用高德地图API根据经纬度获取位置信息时,遇到返回结果异常。错误的经纬度输入导致API返回了不同格式的JSON数据,通过Socket请求分析发现Content-Length值不一致。此问题揭示了在调用API时需要验证输入参数的正确性,并理解浏览器和工具对返回结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事情是这样的,最近公司有一个业务需求,需要根据经纬度计算出具体的位置信息。于是打算用高德地图的Api来实现。也是很简单的,就调用一个http的api就返回了结果。(感叹第三方的服务的强大啊)如下是一个简单的测试代码:

@Test
public void testGaoDe() {
   
    String lng = "106.532353";
    String lat = "29.572062";

    String url = "https://restapi.amap.com/v3/geocode/regeo?"
            + "key=bcbddf874b42153b9fc3aadb1f775809&output=JSON&location="
            + lng + "," + lat;

    try {
   
        URL u = new URL(url);
        URLConnection conn = u.openConnection();
        InputStream is = conn.getInputStream();

        //读取输入流
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        String readLine;
        while ( (readLine = reader.readLine()) != null ){
   
            System.out.println(readLine);
        }
        reader.close();

    } catch (IOException e) {
   
        e.printStackTrace();
    }
}

运行可以看到返回了一个json数据,这样我就可以做我想做的了!到这里一切都很完美。

{
   "status":"1","regeocode":{
   "addressComponent":{
   "city":[],"province":"重庆市","adcode":"500105","district":"江北区","towncode":"500105006000","streetNumber":{
   "number":"1-4号","location":"106.532424,29.572047","direction":"东","distance":"7.05076","street":"建新西路"},"country":"中国","township":"观音桥街道","businessAreas":[{
   "location":"106.533939,29.576787","name":"观音桥","id":"500105"},{
   "location":"106.537491,29.568066","name":"华新街","id":"500105"},{
   "location":"106.533912,29.575701","name":"江北(商圈)","id":"500105"}],"building":
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值