java调用淘宝api联网查询ip归属地

时间:2022-06-11 12:21:20 

淘宝返回的数据为:
{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u4e1c","area_id":"300000","region":"\u5c71\u4e1c\u7701","region_id":"370000","city":"\u4e1c\u8425\u5e02","city_id":"370500","county":"","county_id":"-1","isp":"\u8054\u901a","isp_id":"100026","ip":"60.214.183.158"}}

用法:


String arr1 = GetAddressByIp.GetAddressByIp("120.192.182.1");
System.out.println(arr1);



详细请看代码


package getAddressByIp;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import net.sf.json.JSONObject;

public class GetAddressByIp
{

 
 /**
  *
  * @param IP
  * @return
  */
 public static String GetAddressByIp(String IP){
  String resout = "";
  try{
   String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+IP);
   System.out.println(str);

   JSONObject obj = JSONObject.fromObject(str);
   JSONObject obj2 =  (JSONObject) obj.get("data");
   String code = (String) obj.get("code");
   if(code.equals("0")){

    resout =  obj2.get("country")+"--" +obj2.get("area")+"--" +obj2.get("city")+"--" +obj2.get("isp");
   }else{
    resout =  "IP地址有误";
   }
  }catch(Exception e){

   e.printStackTrace();
    resout = "获取IP地址异常:"+e.getMessage();
  }
  return resout;

 }

    public static String getJsonContent(String urlStr)
    {
        try
        {// 获取HttpURLConnection连接对象
            URL url = new URL(urlStr);
            HttpURLConnection httpConn = (HttpURLConnection) url
                    .openConnection();
            // 设置连接属性
            httpConn.setConnectTimeout(3000);
            httpConn.setDoInput(true);
            httpConn.setRequestMethod("GET");
            // 获取相应码
            int respCode = httpConn.getResponseCode();
            if (respCode == 200)
            {
                return ConvertStream2Json(httpConn.getInputStream());
            }
        }
        catch (MalformedURLException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return "";
    }
    private static String ConvertStream2Json(InputStream inputStream)
    {
        String jsonStr = "";
        // ByteArrayOutputStream相当于内存输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        // 将输入流转移到内存输出流中
        try
        {
            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
            {
                out.write(buffer, 0, len);
            }
            // 将内存流转换为字符串
            jsonStr = new String(out.toByteArray());
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jsonStr;
    }
}

标签:java,淘宝,归属地
0
投稿

猜你喜欢

  • spring boot executable jar/war 原理解析

    2022-10-13 18:30:09
  • Android中自定义标题栏样式的两种方法

    2022-05-03 09:06:01
  • java IO流将一个文件拆分为多个子文件代码示例

    2023-08-30 12:46:15
  • Android HorizontalScrollView滑动与ViewPager切换案例详解

    2023-06-05 00:48:27
  • Java中JDBC连接数据库详解

    2023-08-10 16:57:18
  • C# FileStream简单介绍和使用

    2023-07-05 23:04:05
  • Spring Boot Thymeleaf实现国际化的方法详解

    2023-11-24 06:01:01
  • Android开发中amera2 Preview使用详解

    2023-11-09 20:17:56
  • c#使用反射调用类型成员示例

    2023-02-27 08:54:43
  • C# Winform选项卡集成窗体详解

    2021-08-12 17:13:55
  • Java构建高效结果缓存方法示例

    2021-11-12 03:52:06
  • Mybatis Select Count(*)的返回值类型介绍

    2022-06-17 12:51:19
  • C++中静态成员函数与静态成员变量(static )

    2021-11-08 07:31:38
  • java 集合工具类Collections及Comparable和Comparator排序详解

    2023-04-29 03:42:06
  • 一步步教你如何使用Java实现WebSocket

    2023-06-07 04:18:20
  • SpringBoot接口加密解密统一处理

    2023-04-12 19:42:04
  • Unity 按钮添加OnClick事件操作

    2023-06-28 15:57:27
  • 一文带你搞懂Java定时器Timer的使用

    2022-09-08 01:18:16
  • 通过代码快速理解Java的三种代理模式

    2023-03-28 01:13:57
  • 汉字转拼音缩写示例代码(Silverlight和.NET 将汉字转换成为拼音)

    2023-01-18 10:29:45
  • asp之家 软件编程 m.aspxhome.com