文档章节

162.Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

Lucky_Me
 Lucky_Me
发布于 07/23 00:08
字数 653
阅读 19
收藏 9

1.效果

调用阿里云的接口 去定位IP地址

2. 代码

/**
     * 1. Java中远程调用方法
     *             http://localhost:8080/mavenssm20180519/invokingUrl.action
     * @Title: invokingUrl
     * @Description: 
     * @return void
     * @throws Exception 
     * @throws 
       @date 2018年7月22日 下午11:58:58
     */
    @RequestMapping("/invokingUrl.action")
    public void invokingUrl(HttpServletRequest request) throws Exception{
        
        //------------------------java中发送请求---------------开始------------
        //记录登录着的id信息
        //(1)拿到用户的ip
        String remoteAddr = request.getRemoteAddr();
        //(2) 通过淘宝IP地址库获取IP位置
        // 动态调用数据库数据
        PrintWriter out = null;
        BufferedReader in =null;
        String getData ="";
        String line;
        URL url = new URL("http://ip.taobao.com/service/getIpInfo.php?ip="+remoteAddr);//import java.net.URL; 
        URLConnection conn = url.openConnection();// import java.net.URLConnection;
        //发生post必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
        //获取URLConnection对象对应的输出流
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
            out.flush();
        //定义  BufferedReader 输入流的URL响应
            in =  new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
            while((line = in.readLine())!=null){
                getData += line;
            }
            

            
        System.out.println(getData);
        //------------------------java中发送请求---------------结束------------
    }

2. 在java发送get/post的请求

2.1 utils 类

package cn.mg.kindeditor.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;

public class sendRequestUtils {
    /**
     * 1.post方式发送请求
     * @param requestUrl
     * @return
     * @throws Exception
     */
        public  static String sendPostRequest(String requestUrl) throws Exception{
    
             //------------------------java中发送请求---------------开始------------
            //记录登录着的id信息
            //(1)拿到用户的ip
            //(2) 通过淘宝IP地址库获取IP位置
            // 动态调用数据库数据
            PrintWriter out = null;
            BufferedReader in =null;
            String getData ="";
            String line;
            URL url = new URL(requestUrl);//import java.net.URL; 
            URLConnection conn = url.openConnection();// import java.net.URLConnection;
            //发生post必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
            //获取URLConnection对象对应的输出流
                out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
                out.flush();
            //定义  BufferedReader 输入流的URL响应
                in =  new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
                while((line = in.readLine())!=null){
                    getData += line;
                }
                
            System.out.println(getData);
             
            return getData;
        }
        
        /**
         * 2.get方式发送请求
         * @param url
         * @return
         */
        public static String sendGetRequest(String url){
            String result = "";
            String line;
            StringBuffer sb=new StringBuffer();
            BufferedReader in = null;
            try {
             
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性 设置请求格式
                conn.setRequestProperty("contentType", "utf-8"); 
                conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
                //设置超时时间
                conn.setConnectTimeout(60);
                conn.setReadTimeout(60);
                // 建立实际的连接
                conn.connect();
                // 定义 BufferedReader输入流来读取URL的响应,设置接收格式
                in = new BufferedReader(new InputStreamReader(
                        conn.getInputStream(),"utf-8"));
                while ((line = in.readLine()) != null) {
                    sb.append(line);
                }
                result=sb.toString();
            } catch (Exception e) {
                System.out.println("发送GET请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输入流
            finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return result;
        }
}
 

 

2.2  调用(应用)

2.2.1 post

效果:

 

2.2.2 get

效果:

3. 附件

码云:

https://gitee.com/Luck_Me/javaToGetOrPost/tree/master

百度云:

链接:https://pan.baidu.com/s/1FJSngPT72DwNTrgsWV-cLg 
提取码:7tv2 

 

© 著作权归作者所有

共有 人打赏支持
Lucky_Me
粉丝 9
博文 206
码字总数 74750
作品 0
美国
私信 提问
微信小程序通过ip获取用户所在城市

在微信小程序中, 获取用户的地理位置是需要权限的, 如果只是获取用户所在的城市信息, 那只需查看用户ip所在的城市就好了, 下面我们就完成获取用户ip的小程序逻辑~ 根据用户ip获取地理位置 根...

木子昭
09/26
0
0
CNCERT 2018年5月我国DDoS攻击资源分析报告

  本月重点关注情况   1、本月利用肉鸡发起 DDoS 攻击的控制端中,境外控制端超过一半位于美国;境内控制端最多位于浙江省,其次是江苏省、北京市和上海市,按归属运营商统计,电信占的比...

FreeBuf
06/13
0
0
python查询ip归属地

本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码 # -- coding: utf-8 --import requests def checkip...

老徐_kevin
2014/12/10
0
0
配置阿里云 CDN 服务

前言 CDN(Content Delivery Network,内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需...

诸葛孔明亮
2016/11/28
70
0
go环境+ip本地库统计ip归属地

一、服务器环境介绍: dell服务器PowerEdge R420 系统是最小化安装 由于我的系统是CentOS6.9 x89_64位的,所以下载安装64位的go tar包 二、安装go环境: 参考文档: https://www.cnblogs.co...

wjw555
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP生成CSV之内部换行

当我们使用PHP将采集到的文件内容保存到csv文件时,往往需要将采集内容进行二次过滤处理才能得到需要的内容。比如网页中的换行符,空格符等等。 对于空格等处理起来都比较简单,这里我们单独...

豆花饭烧土豆
20分钟前
0
0
使用 mjml 生成 thymeleaf 邮件框架模板

发邮件算是系统开发的一个基本需求了,不过搞邮件模板实在是件恶心事,估计搞过的同仁都有体会。 得支持多种客户端 支持响应式 疼彻心扉的 outlook 多数客户端只支持 inline 形式的 css 布局...

郁也风
23分钟前
2
0
让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
今天
3
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
今天
17
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部