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

1.效果

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

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

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

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

效果:app

 

2.2.2 get

效果:maven

3. 附件

码云:post

https://gitee.com/Luck_Me/javaToGetOrPost/tree/master阿里云

百度云:url

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

相关文章
相关标签/搜索