• http使用代理


    直接上代码:

    HttpUrlConnection使用代理:

     private static HttpURLConnection getConnection(URL url, String method, String ctype)
                throws IOException {
            HttpURLConnection conn;
            if (hasProxy) {
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
                conn = (HttpURLConnection)url.openConnection(proxy);
            } else {
                conn = (HttpURLConnection) url.openConnection();
            }
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestMethod(method);
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Connection", "Keep-Alive");
            return conn;
        }

    https:

     private static HttpsURLConnection getConnectionHttps(URL url, String method, String ctype)
                throws IOException {
    
            SSLContext sslContext = null;
            try {
                sslContext = SSLContext.getInstance("TLS"); // 或SSL
                X509TrustManager[] xtmArray = new X509TrustManager[]{new myX509TrustManager()};
                sslContext.init(null, xtmArray, new java.security.SecureRandom());
            } catch (GeneralSecurityException e) {
                e.printStackTrace();
            }
            if (sslContext != null) {
                HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
            }
            HttpsURLConnection.setDefaultHostnameVerifier(new myHostnameVerifier());
            HttpsURLConnection conn;
            if (hasProxy) {
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
                conn = (HttpsURLConnection)url.openConnection(proxy);
            } else {
                conn = (HttpsURLConnection) url.openConnection();
            }
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestMethod(method);
            conn.setRequestProperty("Content-Type", ctype);
            conn.setRequestProperty("Connection", "Keep-Alive");
            return conn;
        }

    httpClent:

    RequestConfig requestConfig = null;
                if(StringUtil.isEmpty(proxyHost)){
                    requestConfig = RequestConfig.custom()
                            .setSocketTimeout(connectTimeout)
                            .setConnectTimeout(connectTimeout)
                            .build();
                }else{    //代理
                    HttpHost proxy = new HttpHost(proxyHost,proxyPort);
                    requestConfig = RequestConfig.custom()
                            .setProxy(proxy)
                            .setSocketTimeout(connectTimeout)
                            .setConnectTimeout(connectTimeout)
                            .build();
                }

    共同代码:

       private static String proxyHost;
        private static int proxyPort;
        private static boolean hasProxy = false;
    
        public void setProxy(String proxyHost,int proxyPort) {
            this.proxyHost = proxyHost;
            this.proxyPort = proxyPort;
            hasProxy = true;
        }
  • 相关阅读:
    Python 准确获取今天是星期几的代码(isoweekday和weekday
    python对象之间的交互
    cpu的工作原理
    ubuntu禁止内核自动更新
    计算机组成原理
    python实例化对象过程
    python统计班级学生
    python私有变量和方法
    python变量 方法 属性
    制作再生龙启动盘
  • 原文地址:https://www.cnblogs.com/chenglc/p/8308647.html
Copyright © 2020-2023  润新知