You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					388 lines
				
				14 KiB
			
		
		
			
		
	
	
					388 lines
				
				14 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.common.helper.common;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import org.slf4j.Logger;
							 | 
						||
| 
								 | 
							
								import org.slf4j.LoggerFactory;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import javax.servlet.ServletOutputStream;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpServletRequest;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpServletResponse;
							 | 
						||
| 
								 | 
							
								import java.io.*;
							 | 
						||
| 
								 | 
							
								import java.net.HttpURLConnection;
							 | 
						||
| 
								 | 
							
								import java.net.InetSocketAddress;
							 | 
						||
| 
								 | 
							
								import java.net.Proxy;
							 | 
						||
| 
								 | 
							
								import java.net.URL;
							 | 
						||
| 
								 | 
							
								import java.nio.charset.StandardCharsets;
							 | 
						||
| 
								 | 
							
								import java.util.Date;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public class ProxyHelper {
							 | 
						||
| 
								 | 
							
								    private static final Logger logger = LoggerFactory.getLogger(ProxyHelper.class);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static String post(String httpUrl, String proxyIp, Integer port, HttpServletRequest req, HttpServletResponse resp) throws IOException {
							 | 
						||
| 
								 | 
							
								        servletConfig(req, resp);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        BufferedReader in = null;
							 | 
						||
| 
								 | 
							
								        BufferedReader reader = null;
							 | 
						||
| 
								 | 
							
								        HttpURLConnection connection = null;
							 | 
						||
| 
								 | 
							
								        // 方法
							 | 
						||
| 
								 | 
							
								        String method = req.getMethod();
							 | 
						||
| 
								 | 
							
								        // 参数
							 | 
						||
| 
								 | 
							
								        String params = req.getQueryString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String contentType = req.getContentType();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            URL url = new URL(httpUrl + "?" + params);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //设置代理
							 | 
						||
| 
								 | 
							
								            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyIp, port));
							 | 
						||
| 
								 | 
							
								            connection = (HttpURLConnection) url.openConnection(proxy);
							 | 
						||
| 
								 | 
							
								            connection.setRequestMethod(method);
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("accept", "*/*");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("connection", "Keep-Alive");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
							 | 
						||
| 
								 | 
							
								            if (contentType == null) {
							 | 
						||
| 
								 | 
							
								                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                connection.setRequestProperty("Content-Type", contentType);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            connection.setDoOutput(true);
							 | 
						||
| 
								 | 
							
								            connection.setDoInput(true);
							 | 
						||
| 
								 | 
							
								            connection.connect();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            int status = connection.getResponseCode();
							 | 
						||
| 
								 | 
							
								            String message = connection.getResponseMessage();
							 | 
						||
| 
								 | 
							
								            String requestURI = req.getRequestURI();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            logger.info("{}-{}-{url:[{}],contentType-[{}],status:[{}], message:[{}]}", method, requestURI, url, contentType, status, message);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 读取响应数据
							 | 
						||
| 
								 | 
							
								            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
							 | 
						||
| 
								 | 
							
								            StringBuilder result = new StringBuilder();
							 | 
						||
| 
								 | 
							
								            String line;
							 | 
						||
| 
								 | 
							
								            while ((line = reader.readLine()) != null) {
							 | 
						||
| 
								 | 
							
								                result.append(line);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            resp.setStatus(status);
							 | 
						||
| 
								 | 
							
								            servletResp(result.toString(), resp);
							 | 
						||
| 
								 | 
							
								        } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								            // 响应失败信息
							 | 
						||
| 
								 | 
							
								            servletResp(e.toString(), resp);
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        } finally {
							 | 
						||
| 
								 | 
							
								            try {
							 | 
						||
| 
								 | 
							
								                if (reader != null) {
							 | 
						||
| 
								 | 
							
								                    reader.close();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (connection != null) {
							 | 
						||
| 
								 | 
							
								                    // 断开连接
							 | 
						||
| 
								 | 
							
								                    connection.disconnect();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static String get(String httpUrl, String proxyIp, Integer port, HttpServletRequest req, HttpServletResponse resp) {
							 | 
						||
| 
								 | 
							
								        servletConfig(req, resp);
							 | 
						||
| 
								 | 
							
								        String header = resp.getContentType();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        BufferedReader reader = null;
							 | 
						||
| 
								 | 
							
								        HttpURLConnection connection = null;
							 | 
						||
| 
								 | 
							
								        // 方法
							 | 
						||
| 
								 | 
							
								        String method = req.getMethod();
							 | 
						||
| 
								 | 
							
								        // 参数
							 | 
						||
| 
								 | 
							
								        String params = req.getQueryString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String contentType = req.getContentType();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            URL url = new URL(httpUrl + "?" + params);
							 | 
						||
| 
								 | 
							
								            //设置代理
							 | 
						||
| 
								 | 
							
								            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyIp, port));
							 | 
						||
| 
								 | 
							
								            connection = (HttpURLConnection) url.openConnection(proxy);
							 | 
						||
| 
								 | 
							
								            connection.setRequestMethod(method);
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("accept", "*/*");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("connection", "Keep-Alive");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("Content-Type", contentType == null ? "application/x-www-form-urlencoded" : contentType);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            connection.setDoOutput(true);
							 | 
						||
| 
								 | 
							
								            connection.setDoInput(true);
							 | 
						||
| 
								 | 
							
								            connection.connect();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            int status = connection.getResponseCode();
							 | 
						||
| 
								 | 
							
								            String message = connection.getResponseMessage();
							 | 
						||
| 
								 | 
							
								            String requestURI = req.getRequestURI();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            logger.info("{}-{}-{url:[{}],contentType-[{}],status:[{}], message:[{}]}", method, requestURI, url, contentType, status, message);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 读取响应数据
							 | 
						||
| 
								 | 
							
								            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
							 | 
						||
| 
								 | 
							
								            StringBuilder result = new StringBuilder();
							 | 
						||
| 
								 | 
							
								            String line;
							 | 
						||
| 
								 | 
							
								            while ((line = reader.readLine()) != null) {
							 | 
						||
| 
								 | 
							
								                result.append(line);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            resp.setStatus(status);
							 | 
						||
| 
								 | 
							
								            servletResp(result.toString(), resp);
							 | 
						||
| 
								 | 
							
								        } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								            // 响应失败信息
							 | 
						||
| 
								 | 
							
								            servletResp(e.toString(), resp);
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        } finally {
							 | 
						||
| 
								 | 
							
								            try {
							 | 
						||
| 
								 | 
							
								                if (reader != null) reader.close();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (connection != null) connection.disconnect(); // 断开连接
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static String down(String httpUrl, String proxyIp, Integer port, HttpServletRequest req, HttpServletResponse resp, String msgInterface) {
							 | 
						||
| 
								 | 
							
								        servletConfig(req, resp);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        BufferedReader reader = null;
							 | 
						||
| 
								 | 
							
								        HttpURLConnection connection = null;
							 | 
						||
| 
								 | 
							
								        // 方法
							 | 
						||
| 
								 | 
							
								        String method = req.getMethod();
							 | 
						||
| 
								 | 
							
								        // 参数
							 | 
						||
| 
								 | 
							
								        String params = req.getQueryString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String contentType = req.getContentType();
							 | 
						||
| 
								 | 
							
								        InputStream in = null;
							 | 
						||
| 
								 | 
							
								        ServletOutputStream out = null;
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            URL url = new URL(httpUrl + "?" + params);
							 | 
						||
| 
								 | 
							
								            //设置代理
							 | 
						||
| 
								 | 
							
								            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyIp, port));
							 | 
						||
| 
								 | 
							
								            connection = (HttpURLConnection) url.openConnection(proxy);
							 | 
						||
| 
								 | 
							
								            connection.setRequestMethod("GET");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("accept", "*/*");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("connection", "Keep-Alive");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
							 | 
						||
| 
								 | 
							
								            connection.setRequestProperty("Content-Type", contentType == null ? "application/x-www-form-urlencoded" : contentType);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (msgInterface != null) resp.setContentType(msgInterface);
							 | 
						||
| 
								 | 
							
								            resp.addHeader("Content-Disposition", "attachment; filename=" + new Date().getTime() + ".dcm");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            connection.setDoOutput(true);
							 | 
						||
| 
								 | 
							
								            connection.setDoInput(true);
							 | 
						||
| 
								 | 
							
								            connection.connect();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            int status = connection.getResponseCode();
							 | 
						||
| 
								 | 
							
								            String message = connection.getResponseMessage();
							 | 
						||
| 
								 | 
							
								            String requestURI = req.getRequestURI();
							 | 
						||
| 
								 | 
							
								            String respContentType = resp.getContentType();
							 | 
						||
| 
								 | 
							
								            resp.setStatus(status);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            logger.info("{}-{}-{url:[{}],contentType-[{}],respContentType-[{}]status:[{}], message:[{}]}", method, requestURI, url, contentType, respContentType, status, message);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 读取响应数据
							 | 
						||
| 
								 | 
							
								            in = connection.getInputStream();
							 | 
						||
| 
								 | 
							
								//            byte[] getData = readInputStream(in);
							 | 
						||
| 
								 | 
							
								            out = resp.getOutputStream();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            byte[] buff = new byte[1024 * 1024];
							 | 
						||
| 
								 | 
							
								            while (in.read(buff) != -1) out.write(buff);
							 | 
						||
| 
								 | 
							
								            //\\DESKTOP-QKUSP27\pacs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 读取响应数据
							 | 
						||
| 
								 | 
							
								//            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
							 | 
						||
| 
								 | 
							
								//            StringBuilder result = new StringBuilder();
							 | 
						||
| 
								 | 
							
								//            String line;
							 | 
						||
| 
								 | 
							
								//            while ((line = reader.readLine()) != null) {
							 | 
						||
| 
								 | 
							
								//                result.append(line).append("\n");
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//            servletResp(result.toString(), resp);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								            // 响应失败信息
							 | 
						||
| 
								 | 
							
								            servletResp(e.toString(), resp);
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        } finally {
							 | 
						||
| 
								 | 
							
								            try {
							 | 
						||
| 
								 | 
							
								                if (reader != null) reader.close();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (out != null) out.close();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (in != null) in.close();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (connection != null) connection.disconnect(); // 断开连接
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 从输入流中获取字节数组
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param is 输入流
							 | 
						||
| 
								 | 
							
								     * @return
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static byte[] readInputStream(InputStream is) {
							 | 
						||
| 
								 | 
							
								        ByteArrayOutputStream bos = null;
							 | 
						||
| 
								 | 
							
								        while (true) {
							 | 
						||
| 
								 | 
							
								            try {
							 | 
						||
| 
								 | 
							
								                bos = new ByteArrayOutputStream();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                int len;
							 | 
						||
| 
								 | 
							
								                byte[] buffer = new byte[1024];
							 | 
						||
| 
								 | 
							
								                if ((len = is.read(buffer)) == -1) break;
							 | 
						||
| 
								 | 
							
								                bos.write(buffer, 0, len);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								            } finally {
							 | 
						||
| 
								 | 
							
								                try {
							 | 
						||
| 
								 | 
							
								                    if (bos != null) bos.close();
							 | 
						||
| 
								 | 
							
								                } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								                    e.printStackTrace();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return bos.toByteArray();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static void servletConfig(HttpServletRequest req, HttpServletResponse resp) {
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            req.setCharacterEncoding("utf-8");
							 | 
						||
| 
								 | 
							
								//            resp.setCharacterEncoding("utf-8");
							 | 
						||
| 
								 | 
							
								//            resp.setContentType("application/json;charset=utf-8");
							 | 
						||
| 
								 | 
							
								            /* 允许跨域的主机地址 */
							 | 
						||
| 
								 | 
							
								            resp.setHeader("Access-Control-Allow-Origin", "*");
							 | 
						||
| 
								 | 
							
								            /* 允许跨域的请求方法GET, POST, HEAD 等 */
							 | 
						||
| 
								 | 
							
								            resp.setHeader("Access-Control-Allow-Methods", "*");
							 | 
						||
| 
								 | 
							
								            /* 重新预检验跨域的缓存时间 (s) */
							 | 
						||
| 
								 | 
							
								            resp.setHeader("Access-Control-Max-Age", "3600");
							 | 
						||
| 
								 | 
							
								            /* 允许跨域的请求头 */
							 | 
						||
| 
								 | 
							
								            resp.setHeader("Access-Control-Allow-Headers", "*");
							 | 
						||
| 
								 | 
							
								            /* 是否携带cookie */
							 | 
						||
| 
								 | 
							
								            resp.setHeader("Access-Control-Allow-Credentials", "true");
							 | 
						||
| 
								 | 
							
								        } catch (UnsupportedEncodingException e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 设置响应内容
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param respMsg 响应内容
							 | 
						||
| 
								 | 
							
								     * @param resp    响应流
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    protected static void servletResp(String respMsg, HttpServletResponse resp) {
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            resp.getWriter().write(respMsg);
							 | 
						||
| 
								 | 
							
								        } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    private static class TrustAnyTrustManager implements X509TrustManager {
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        public void checkClientTrusted(X509Certificate[] chain, String authType) {
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        public void checkServerTrusted(X509Certificate[] chain, String authType) {
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        public X509Certificate[] getAcceptedIssuers() {
							 | 
						||
| 
								 | 
							
								//            return new X509Certificate[]{};
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    private static class TrustAnyHostnameVerifier implements HostnameVerifier {
							 | 
						||
| 
								 | 
							
								//        public boolean verify(String hostname, SSLSession session) {
							 | 
						||
| 
								 | 
							
								//            return true;
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    public static String HttpsProxy(String url, String param, String proxy, int port) {
							 | 
						||
| 
								 | 
							
								//        HttpsURLConnection httpsConn = null;
							 | 
						||
| 
								 | 
							
								//        PrintWriter out = null;
							 | 
						||
| 
								 | 
							
								//        BufferedReader in = null;
							 | 
						||
| 
								 | 
							
								//        StringBuilder result = new StringBuilder();
							 | 
						||
| 
								 | 
							
								//        BufferedReader reader = null;
							 | 
						||
| 
								 | 
							
								//        try {
							 | 
						||
| 
								 | 
							
								//            URL urlClient = new URL(url);
							 | 
						||
| 
								 | 
							
								//            System.out.println("请求的URL========:" + urlClient);
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//            SSLContext sc = SSLContext.getInstance("SSL");
							 | 
						||
| 
								 | 
							
								//            // 指定信任https
							 | 
						||
| 
								 | 
							
								//            sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
							 | 
						||
| 
								 | 
							
								//            //创建代理虽然是https也是Type.HTTP
							 | 
						||
| 
								 | 
							
								//            Proxy proxy1 = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxy, port));
							 | 
						||
| 
								 | 
							
								//            //设置代理
							 | 
						||
| 
								 | 
							
								//            httpsConn = (HttpsURLConnection) urlClient.openConnection(proxy1);
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//            httpsConn.setSSLSocketFactory(sc.getSocketFactory());
							 | 
						||
| 
								 | 
							
								//            httpsConn.setHostnameVerifier(new TrustAnyHostnameVerifier());
							 | 
						||
| 
								 | 
							
								//            // 设置通用的请求属性
							 | 
						||
| 
								 | 
							
								//            httpsConn.setRequestProperty("accept", "*/*");
							 | 
						||
| 
								 | 
							
								//            httpsConn.setRequestProperty("connection", "Keep-Alive");
							 | 
						||
| 
								 | 
							
								//            httpsConn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
							 | 
						||
| 
								 | 
							
								//            // 发送POST请求必须设置如下两行
							 | 
						||
| 
								 | 
							
								//            httpsConn.setDoOutput(true);
							 | 
						||
| 
								 | 
							
								//            httpsConn.setDoInput(true);
							 | 
						||
| 
								 | 
							
								//            // 获取URLConnection对象对应的输出流
							 | 
						||
| 
								 | 
							
								//            out = new PrintWriter(httpsConn.getOutputStream());
							 | 
						||
| 
								 | 
							
								//            // 发送请求参数
							 | 
						||
| 
								 | 
							
								//            out.print(param);
							 | 
						||
| 
								 | 
							
								//            // flush输出流的缓冲
							 | 
						||
| 
								 | 
							
								//            out.flush();
							 | 
						||
| 
								 | 
							
								//            // 定义BufferedReader输入流来读取URL的响应
							 | 
						||
| 
								 | 
							
								//            in = new BufferedReader(
							 | 
						||
| 
								 | 
							
								//                    new InputStreamReader(httpsConn.getInputStream()));
							 | 
						||
| 
								 | 
							
								//            String line;
							 | 
						||
| 
								 | 
							
								//            while ((line = in.readLine()) != null) {
							 | 
						||
| 
								 | 
							
								//                result.append(line);
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//            // 断开连接
							 | 
						||
| 
								 | 
							
								//            httpsConn.disconnect();
							 | 
						||
| 
								 | 
							
								//            System.out.println("====result====" + result);
							 | 
						||
| 
								 | 
							
								//            System.out.println("返回结果:" + httpsConn.getResponseMessage());
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        } catch (Exception e) {
							 | 
						||
| 
								 | 
							
								//            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								//        } finally {
							 | 
						||
| 
								 | 
							
								//            try {
							 | 
						||
| 
								 | 
							
								//                if (reader != null) {
							 | 
						||
| 
								 | 
							
								//                    reader.close();
							 | 
						||
| 
								 | 
							
								//                }
							 | 
						||
| 
								 | 
							
								//            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//            try {
							 | 
						||
| 
								 | 
							
								//                if (in != null) {
							 | 
						||
| 
								 | 
							
								//                    in.close();
							 | 
						||
| 
								 | 
							
								//                }
							 | 
						||
| 
								 | 
							
								//            } catch (IOException e) {
							 | 
						||
| 
								 | 
							
								//                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//            if (out != null) {
							 | 
						||
| 
								 | 
							
								//                out.close();
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        return result.toString();
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								}
							 |