java发送http设置代理

使用"apache.commons.httpclient"

添加依赖

 <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0</version>
 </dependency>

  

public static String doJsonPost(String url,String json, Map<String, String> headerParams) {
        MultiThreadedHttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
        httpConnectionManager.closeIdleConnections(MAX_IDLE_TIME_OUT);
        HttpClient httpClient = new HttpClient();
        PostMethod postMethod = new PostMethod(url);
      
        //设置代理服务器IP和端口号
        httpClient.getHostConfiguration().setProxy("11.11.11.11", 8080);
        //使用抢先认证
        httpClient.getParams().setAuthenticationPreemptive(true);
        //如果代理需要密码验证,这里设置用户名密码
        Credentials defaultcreds = new UsernamePasswordCredentials("username", "password");
        httpClient.getState().setProxyCredentials(AuthScope.ANY, defaultcreds);

        try {
            postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
            postMethod.addRequestHeader("Pragma","no-cache");
            postMethod.addRequestHeader("Cache-Control:","no-cache");
            postMethod.setRequestBody(json);
            httpClient.executeMethod(postMethod);
            if(postMethod.getStatusCode() == HttpStatus.SC_OK || postMethod.getStatusCode() == HttpStatus.SC_BAD_REQUEST){
                return postMethod.getResponseBodyAsString();
            }else {
                postMethod.abort();
            }
        } catch (Exception e) {
        } finally {
            postMethod.releaseConnection();
        }
        return null;
    }