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;
}
}
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
spring boot executable jar/war 原理解析
Android中自定义标题栏样式的两种方法
java IO流将一个文件拆分为多个子文件代码示例
![](https://img.aspxhome.com/file/2023/3/58193_0s.jpg)
Android HorizontalScrollView滑动与ViewPager切换案例详解
Java中JDBC连接数据库详解
![](https://img.aspxhome.com/file/2023/2/58162_0s.png)
C# FileStream简单介绍和使用
Spring Boot Thymeleaf实现国际化的方法详解
![](https://img.aspxhome.com/file/2023/8/59008_0s.png)
Android开发中amera2 Preview使用详解
c#使用反射调用类型成员示例
C# Winform选项卡集成窗体详解
![](https://img.aspxhome.com/file/2023/7/87037_0s.png)
Java构建高效结果缓存方法示例
Mybatis Select Count(*)的返回值类型介绍
C++中静态成员函数与静态成员变量(static )
java 集合工具类Collections及Comparable和Comparator排序详解
一步步教你如何使用Java实现WebSocket
![](https://img.aspxhome.com/file/2023/1/77971_0s.png)
SpringBoot接口加密解密统一处理
Unity 按钮添加OnClick事件操作
![](https://img.aspxhome.com/file/2023/3/113683_0s.jpg)
一文带你搞懂Java定时器Timer的使用
![](https://img.aspxhome.com/file/2023/3/72373_0s.png)
通过代码快速理解Java的三种代理模式
![](https://img.aspxhome.com/file/2023/8/125308_0s.jpg)