版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshuo1231/article/details/77131593
接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
反回的JSON字符串,所以需要JSONUtil工具类:
需要的jar包:jackson-annotations-2.4.2.jar,jackson-core-2.4.2.jar,jackson-databind-2.3.1.jar,只写了JSON转map和javabean、list转json。
public class JSONUtil {
public static ObjectMapper objectMapper = new ObjectMapper();
/**
* javaBean,list,array convert to json string
* @param obj
* @return
* @throws Exception
*/
public static String obj2json(Object obj) throws Exception {
return objectMapper.writeValueAsString(obj);
}
public static Map<String, String> json2map(
String jsonStr) throws Exception {
return objectMapper.readValue(jsonStr, Map.class);
}
}
实现:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
/**
* <p>类说明:</p>
* @author 作者:孙硕
* @version 时间:2017年8月12日 下午11:27:31
*/
public class FromIpGetAddrDemo {
public static void main(String[] args) throws Exception {
String result = getAddrByIP("175.190.0.12");
Map<String, String> map = JSONUtil.json2map(result);
String country = map.get("country");
String province = map.get("province");
String city = map.get("city");
System.out.println(country + "-" + province + "-" + city);
}
public static String getAddrByIP(String ipstr) {
StringBuffer result = new StringBuffer();
try {
URL url = new URL(
"http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip="
+ ipstr);
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
result.append(line);
}
reader.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}
}
作为参考使用。