主要是json返回值的获取

package com.xtisp.service.system;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.annotation.Resource;

import net.sf.json.JSONObject;

import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.Header;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.tomcat.jni.Global;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;

import com.xtisp.entity.system.IPDic;
import com.xtisp.solution.dao.DaoSupport;
import com.xtisp.util.PageData;

public class IPDicService {

public static void scheduleTask() {

System.out.println("定时处理IP地址");

try {

StringBuilder entityStringBuilder=new StringBuilder();
JSONObject resultJsonObject=null;
String getUrl = String.format("http://ip.taobao.com/service/getIpInfo.php?ip=%s", "47.90.33.254");

CloseableHttpClient httpclient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
       .setSocketTimeout(1000)
       .setConnectTimeout(3000)
       .build();
HttpGet httpGet = new HttpGet(getUrl);
//httpGet.addHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
//httpGet.addHeader("Accept-Encoding","gzip, deflate, sdch");
//httpGet.addHeader("Accept-Language","zh-CN,zh;q=0.8");
//httpGet.addHeader("Cache-Control","no-cache");
//httpGet.addHeader("Host","ip.taobao.com");
//httpGet.addHeader("Pragma","no-cache");
//httpGet.addHeader("Proxy-Connection","keep-alive");
//httpGet.addHeader("Upgrade-Insecure-Requests","1");
//httpGet.addHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36name, value");

httpGet.setConfig(requestConfig);
System.out.println(getUrl);
CloseableHttpResponse getResponse = httpclient.execute(httpGet);
HttpEntity responseEntity = getResponse.getEntity();
BufferedReader bufferedReader=null;
System.out.println(getResponse.getStatusLine() );

if (responseEntity != null) {

try {
bufferedReader=new BufferedReader(new InputStreamReader(responseEntity.getContent(), "UTF-8"), 8*1024);
   String line=null;
while ((line=bufferedReader.readLine())!=null) {
entityStringBuilder.append(line);
}
//利用从HttpEntity中得到的String生成JsonObject

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

System.out.println(entityStringBuilder.toString());

resultJsonObject= JSONObject.fromObject(entityStringBuilder.toString());
//JSONObject jsonObject = JSONObject.fromObject(paramContent);

System.out.println(resultJsonObject.getJSONObject("data").get("region"));
System.out.println(resultJsonObject.get("region"));

}

EntityUtils.consume(responseEntity);

}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("处理IP地址");

}

public static void main(String[] args) {
scheduleTask();
//GetAddressByIp("47.90.33.254");
}

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;
   }
}

从淘宝服务器IP地址服务获取IP地址信息的方法相关推荐

  1. 淘宝API接口(item_sku - 获取sku详细信息)

    今天分享淘宝API接口:获取sku详细信息,包括其他各大电商平台都在使用范围内 想了解的可以进去看看:点击测试 参数示例: {     "item": {         &quo ...

  2. 淘宝api接口系列,获取sku详细信息

    测试注册 item_sku-获取sku详细信息 请求参数 请求参数:num_iid=572050066584&sku_id=3880971359554&is_promotion=0 参 ...

  3. php使用淘宝IP库接口获取 IP所属地和运营商

    php使用淘宝IP库接口获取 IP所属地和运营商 代码: ---- root@ops-docker-1:/tmp/IP_txt/get_random_line/contrast# cat taobao ...

  4. 互联网日报 | 6月29日 星期二 | 华为重申“不造车”;腾讯朋友APP再次关停;中国航天文创在淘宝首发“太空寄信”服务...

    今日看点 ✦ 华为迟林春:华为不具备造车实力,也不会控股.投资任何汽车企业 ✦ 字节跳动推出LightSeq训练加速引擎,向全球开发者开源 ✦ 腾讯朋友APP再次关停:6月30日关闭服务器,正式停止运 ...

  5. 淘宝API接口:item_recommend - 获取推荐商品列表

    今天分享的是淘宝平台API,item_recommend - 获取推荐商品列表 天猫获取推荐商品列表 API 返回数据 点击注册测试地址(获取Key和secret) Request address: ...

  6. 淘宝客之 淘宝客类目URL获取

    淘宝客之 淘宝客类目URL获取,上次介绍了如何获取商品信息,这次进一步说明如果使用淘宝SDK获取相关类目信息. 第一步相关SDK类说明: 请求信息类TaobaokeCaturlGetRequest V ...

  7. 淘宝自动查券找券返利微信机器人实现方法分享

    淘宝自动查券找券返利微信机器人实现方法分享 一.登陆淘宝联盟 手机淘宝扫码授权登陆淘宝联盟 地址:https://www.alimama.com 二.配置推广位,获取PID(推荐使用会员PID) 会员 ...

  8. AJAX使用淘宝API查询手机归属地和运营商信息

    AJAX使用淘宝API查询手机归属地和运营商信息 使用给的api地址查询自己的手机号码所在地 地址: https://www.baifubao.com/callback?cmd=1059&ph ...

  9. 淘宝“1元包邮”促销存陷阱 客户信息被卖家套取并转卖,你知道吗?

    淘宝"1元包邮"促销存陷阱 客户信息被卖家套取并转卖,你知道吗 淘宝"1元包邮"促销存陷阱,客户信息被卖家套取并转卖.近日,淘宝上出现很多一元多包邮的服饰,一天 ...

最新文章

  1. HDU1576 A/B (解法二)【试探法】
  2. 解决Layui的switch样式显示问题
  3. 用于阴影检测的 DSC 特征
  4. jenkins环境搭建
  5. C语言实现Dijkstra(迪杰斯特拉)算法(附完整源码)
  6. 【学习总结】GirlsInAI ML-diary day-11-while循环
  7. python二维列表的展开_python将三维数组展开成二维数组的实现
  8. 【数据结构笔记33】C实现:希尔排序、增量序列
  9. NATS--NATS Streaming持久化
  10. gabor滤波器matlab实现,使用matlab实现Gabor滤波器
  11. android 定时打开app,如何 定时启动你的Android App
  12. Rust中国大会议程介绍:分会场 下
  13. STM32基础10--实时时钟(RTC)
  14. Linux下安装Oracle18c
  15. dso详解--dso原理
  16. 成都大数据语言培训:如何提高数据分析能力
  17. caffe2及Detectron环境搭建
  18. legacy服务器安装系统,支持UEFI和LEGACY的多系统安装U盘
  19. ESP-IDF库开发教程之(1)--ESP32简介
  20. 担心侵权?必备无版权素材网站分享,不用担心视频剪辑缺素材

热门文章

  1. 数据库分页【Limt与Limt..OFFSET 】
  2. 科普小时代---笔记本连接无线受限
  3. [句子成分] 四、状语 定语 同位语
  4. 《测绘综合能力》——工程测量
  5. 计算机怎黑夜模式么启动,Win10系统电脑夜间模式怎么开启/关闭的方法
  6. vconsole 轻松实现移动端调试
  7. 教程篇:《基础模块2》金蝶K3WISE15.0-注册套打教程
  8. 可视化绘图技巧100篇分析篇(一)-数据降维NMDS分析(补充篇)
  9. Python 小型项目大全 36~40
  10. 【遗传算法GA】--计算函数最值(Python)