相同的jar包,在一个服务器都可以访问,在另外一个服务器不能访问(http请求到其他网站)

package com.ws.pin.util;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**

  • @author EDZ

  • /
    public class HttpUtils {

    static {

      System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
    

    }

    /**

    • 向指定URL发送GET方法的请求
    • @params url
    •        发送请求的URL
      
    • @params params
    •        请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
      
    • @return URL 所代表远程资源的响应结果
    • /
      public static String sendGet(String url, Map<String, String> paramss) {
      String ip=IpUtils.agentIp();
      String result = "";
      BufferedReader in = null;
      String paramssString = "";
      try {
        if (paramss != null) {
            Iterator iter = paramss.entrySet().iterator();
            while (iter.hasNext()) {
                Map.Entry entry = (Map.Entry) iter.next();
                String inputName = (String) entry.getKey();
                String inputValue = (String) entry.getValue();
                if (inputValue == null) {
                    continue;
                }
                paramssString += inputName + "=" + inputValue + "&";
            }
        }
        String urlNameString = url + "?" + paramssString;
        URL realUrl = new URL(urlNameString);
        // 打开和URL之间的连接
        URLConnection connection = realUrl.openConnection();
        // 设置通用的请求属性
        connection.setRequestProperty("accept", "*/*");
        connection.setRequestProperty("connection", "Keep-Alive");
        connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        connection.setRequestProperty("Charset", "utf-8");
        connection.setRequestProperty("x-forwarded-for", ip);
        // 建立实际的连接
        connection.connect();
        // 获取所有响应头字段
        Map<String, List<String>> map = connection.getHeaderFields();
        // 遍历所有的响应头字段
      
      // for (String key : map.keySet()) {
      // System.out.println(key + "--->" + map.get(key));
      // }
        // 定义 BufferedReader输入流来读取URL的响应
        in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
      
      } catch (Exception e) {
        System.out.println(ip+"发送GET请求出现异常!" + e);
        e.printStackTrace();
      
      }
      // 使用finally块来关闭输入流
      finally {
        try {
            if (in != null) {
                in.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
      
      }
      return result;
      }
public static String sendGetHead(String url, Map<String, String> paramss,String authorization,String token) {
    String ip=IpUtils.agentIp();
    String result = "";
    BufferedReader in = null;
    String paramssString = "";
    try {
        if (paramss != null) {
            Iterator iter = paramss.entrySet().iterator();
            while (iter.hasNext()) {
                Map.Entry entry = (Map.Entry) iter.next();
                String inputName = (String) entry.getKey();
                String inputValue = (String) entry.getValue();
                if (inputValue == null) {
                    continue;
                }
                paramssString += inputName + "=" + inputValue + "&";
            }
        }
        String urlNameString = url + "?" + paramssString;
        URL realUrl = new URL(urlNameString);
        // 打开和URL之间的连接
        HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
        // 设置通用的请求属性
        connection.setRequestProperty("accept", "*/*");
        connection.setRequestProperty("connection", "Keep-Alive");
        connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        connection.setRequestProperty("Charset", "utf-8");
        connection.setRequestProperty("x-forwarded-for", ip);
        connection.setRequestProperty("Authorization", authorization);
        connection.setRequestProperty("TOKEN", token);
        // 建立实际的连接
        connection.connect();
        // 获取所有响应头字段
        Map<String, List<String>> map = connection.getHeaderFields();
        // 遍历所有的响应头字段

// for (String key : map.keySet()) {
// System.out.println(key + "--->" + map.get(key));
// }
// 定义 BufferedReader输入流来读取URL的响应
if (Objects.equals(connection.getResponseCode(),HttpURLConnection.HTTP_OK)
|| Objects.equals(connection.getResponseCode(), HttpURLConnection.HTTP_CREATED)
|| Objects.equals(connection.getResponseCode(),HttpURLConnection.HTTP_ACCEPTED)){
in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
}else {
in = new BufferedReader(new InputStreamReader(connection.getErrorStream(),"UTF-8"));
}
String encoding = "UTF-8";
result = inputStream2String(connection.getInputStream(), encoding);
/String line;
while ((line = in.readLine()) != null) {
result += line;
}
/

    } catch (Exception e) {
        System.out.println(ip+"发送GET请求出现异常!" + e);
        e.printStackTrace();
    }
    // 使用finally块来关闭输入流
    finally {
        try {
            if (in != null) {
                in.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
    return result;
}

/**
 * 读取inputStream 到 string
 *
 * @param input
 * @param encoding
 * @return
 * @throws IOException
 */
private static String inputStream2String(InputStream input, String encoding) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(input, encoding));
    StringBuilder result = new StringBuilder();
    int BUFFER_SIZE = 1024;
    char[] buffer = new char[BUFFER_SIZE]; // or some other size,
    int charsRead = 0;
    while ( (charsRead  = reader.read(buffer, 0, BUFFER_SIZE)) != -1) {
        result.append(buffer, 0, charsRead);
    }
    return result.toString();

}


/**
 * 向指定 URL 发送POST方法的请求
 *
 * @params url
 *            发送请求的 URL
 * @params params
 *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 * @return 所代表远程资源的响应结果
 */
public static String sendPost(String url,  Map<String, String> paramss) {
    String ip=IpUtils.agentIp();
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    String paramssString = "";
    try {
        if (paramss != null) {
            Iterator iter = paramss.entrySet().iterator();
            while (iter.hasNext()) {
                Map.Entry entry = (Map.Entry) iter.next();
                String inputName = (String) entry.getKey();
                String inputValue = (String) entry.getValue();
                if (inputValue == null) {
                    continue;
                }
                paramssString += inputName + "=" + inputValue + "&";
            }
        }
        URL realUrl = new URL(url);
        // 打开和URL之间的连接
        HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
        // 设置通用的请求属性
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        conn.setRequestProperty("Charset", "utf-8");
        conn.setRequestProperty("x-forwarded-for", ip);
        // 发送POST请求必须设置如下两行
        conn.setDoOutput(true);
        conn.setDoInput(true);
        // 获取URLConnection对象对应的输出流
        out = new PrintWriter(conn.getOutputStream());
        // 发送请求参数
        out.print(paramssString);
        // flush输出流的缓冲
        out.flush();
        // 定义BufferedReader输入流来读取URL的响应
        if (Objects.equals(conn.getResponseCode(),HttpURLConnection.HTTP_OK)
                || Objects.equals(conn.getResponseCode(), HttpURLConnection.HTTP_CREATED)
                || Objects.equals(conn.getResponseCode(),HttpURLConnection.HTTP_ACCEPTED)){
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
        }else {
            in = new BufferedReader(new InputStreamReader(conn.getErrorStream(),"UTF-8"));
        }
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
    } catch (Exception e) {
        System.out.println(ip+"发送 POST 请求出现异常!"+e);
        e.printStackTrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
        try{
            if(out!=null){
                out.close();
            }
            if(in!=null){
                in.close();
            }
        }
        catch(IOException ex){
            ex.printStackTrace();
        }
    }
    return result;
}

public static String sendPostHead(String url,  Map<String, String> paramss,String authorization,String token) {
    String ip=IpUtils.agentIp();
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    String paramssString = "";
    try {
        if (paramss != null) {
            Iterator iter = paramss.entrySet().iterator();
            while (iter.hasNext()) {
                Map.Entry entry = (Map.Entry) iter.next();
                String inputName = (String) entry.getKey();
                String inputValue = (String) entry.getValue();
                if (inputValue == null) {
                    continue;
                }
                paramssString += inputName + "=" + inputValue + "&";
            }
        }
        URL realUrl = new URL(url);
        // 打开和URL之间的连接
        HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
        // 设置通用的请求属性
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        conn.setRequestProperty("Charset", "utf-8");
        conn.setRequestProperty("x-forwarded-for", ip);
        conn.setRequestProperty("Authorization", authorization);
        conn.setRequestProperty("TOKEN", token);
        // 发送POST请求必须设置如下两行
        conn.setDoOutput(true);
        conn.setDoInput(true);
        // 获取URLConnection对象对应的输出流
        out = new PrintWriter(conn.getOutputStream());
        // 发送请求参数
        out.print(paramssString);
        // flush输出流的缓冲
        out.flush();
        // 定义BufferedReader输入流来读取URL的响应
        if (Objects.equals(conn.getResponseCode(),HttpURLConnection.HTTP_OK)
                || Objects.equals(conn.getResponseCode(), HttpURLConnection.HTTP_CREATED)
                || Objects.equals(conn.getResponseCode(),HttpURLConnection.HTTP_ACCEPTED)){
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
        }else {
            in = new BufferedReader(new InputStreamReader(conn.getErrorStream(),"UTF-8"));
        }
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
    } catch (Exception e) {
        System.out.println(ip+"发送 POST 请求出现异常!"+e);
        e.printStackTrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
        try{
            if(out!=null){
                out.close();
            }
            if(in!=null){
                in.close();
            }
        }
        catch(IOException ex){
            ex.printStackTrace();
        }
    }
    return result;
}

}

域名(IP)与端口不一致时,请求要做跨域处理。