通过Java程序调用高德开放API_IP定位

释放双眼,带上耳机,听听看~!

前几天因为网站的访客有点异常,我就看了日志,发现部分访客的IP有点奇怪,然后我就想着看看这些人是从哪里来的。我先是去了百度上埃文科技上面查,因为一直比较信任这个站点,用的也比较多一点。然后就在上面查了五六个IP地址的详细定位信息。

捣鼓了一阵子,就在想这个网站每天给这么多人查IP定位信息,也是很强大啊,然后我就很好奇目前开放平台提供的API,到底能给我们提供多少资源。然后,,说干就干,我就去逛了高德开放平台。

不得不说……高德开放平台有着很多的开放API,而且有着很多的限额,我貌似发现宝藏一样有点惊喜,因为我以前没玩过这些开放平台的API接口。然后我就看了下IP定位每天的免费额度……30万

然后打开我的祖传eclipse,简单的获取下响应信息,就调用成功了。其实我是应该用键值对去获取响应信息的,无奈我的Map没学好……硬是不成功,,没办法只能老办法玩一玩。

package com.demo01.iplocation.api;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

public class test {

    public static void main(String[] args) throws Exception {
        String IP = "1.81.5.190";
        String key = "35ac5e5f8abf34acdbc47a1b87b02f7b";
        String url_head = "https://restapi.amap.com/v3/ip?output=json&key=" ;
        String Url_str = url_head + key + "&ip=" + IP ;

        URL url = new URL(Url_str);
        /*URL url = new URL("https://restapi.amap.com/v3/ip?output=json&"
                + "key=fc9ab3e41e05ebc633244a07a83e1b1f&ip=1.81.5.190");*/
            HttpsURLConnection urlcon = (HttpsURLConnection) url.openConnection();
            urlcon.connect();
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(urlcon.getInputStream(),"utf-8"));
            //Map<String, String> map = urlcon.getHeaderFields();
            //String status = map.get("status");
            StringBuffer sb = new StringBuffer();
            String content = null ;
            while((content=br.readLine())!=null) {
                sb.append(content);
                //sb.append("/r/n");
            }
            System.out.println(sb.toString());
    }

}

测试结果:

{“status”:”1″,”info”:”OK”,”infocode”:”10000″,”province”:”陕西省”,”city”:”榆林市”,”adcode”:”610800″,”rectangle”:”109.6147263,38.20642903;109.8589683,38.36922657″}

更新一波

package com.demo01.iplocation.api;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

public class test {

    public static void main(String[] args) throws Exception {
        String IP = "223.252.199.73";
        String key = "35ac5e5f8abf34acdbc47a1b87b02f7b";
        String url_head = "https://restapi.amap.com/v3/ip?output=json&key=" ;
        String Url_str = url_head + key + "&ip=" + IP ;

        URL url = new URL(Url_str);
            HttpsURLConnection urlcon = (HttpsURLConnection) url.openConnection();
            urlcon.connect();
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(urlcon.getInputStream(),"utf-8"));
            StringBuffer sb = new StringBuffer();
            String content = null ;
            while((content=br.readLine())!=null) {
                sb.append(content);
            }
            //去除首位大括号用
            String contont_src_tem = sb.toString();
            String contont_src = sb.substring(1, contont_src_tem.length()-1);
            //System.out.println(contont_src);
            //将经纬度与前面的信息分开
            String []s = contont_src.split("\"rectangle\"");
            String s_a = s[0];
            String s_b = "\"rectangle\"" + s[1];
            //跟前半部分切片
            String []before_split = s_a.split(",");
            System.out.println("====================");
            System.out.println("IP: "+IP + "的定位信息如下:");
            //输出前半部分
            for(String tem : before_split) {
                System.out.println(tem);
            }
            //输出后半部分
            System.out.println(s_b);
            System.out.println("====================");
    }

}

输出结果:

IP: 223.252.199.73的定位信息如下:
“status”:”1″
“info”:”OK”
“infocode”:”10000″
“province”:”浙江省”
“city”:”杭州市”
“adcode”:”330100″
“rectangle”:”119.8824799,29.95931271;120.5552208,30.52048536″

给TA买糖
共{{data.count}}人
人已赞赏
知识分享

请求重定向

2020-9-20 22:46:00

知识分享

请求与响应

2020-9-21 22:52:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索