HttpUrlConnection use a proxy:
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; }
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(); }
Common Code:
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; }