zoukankan      html  css  js  c++  java
  • Apache HttpComponents 通过代理发送HTTP请求

    package org.apache.http.examples.client;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpHost;
    import org.apache.http.HttpResponse;
    import org.apache.http.auth.AuthScope;
    import org.apache.http.auth.UsernamePasswordCredentials;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.conn.params.ConnRoutePNames;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    
    /**
     * A simple example that uses HttpClient to execute an HTTP request
     * over a secure connection tunneled through an authenticating proxy.
     */
    public class ClientProxyAuthentication {
    
        public static void main(String[] args) throws Exception {
    
            DefaultHttpClient httpclient = new DefaultHttpClient();
            try {
                httpclient.getCredentialsProvider().setCredentials(
                        new AuthScope("localhost", 8080),
                        new UsernamePasswordCredentials("username", "password"));
    
                HttpHost targetHost = new HttpHost("www.verisign.com", 443, "https");
                HttpHost proxy = new HttpHost("localhost", 8080);
    
                httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    
                HttpGet httpget = new HttpGet("/");
    
                System.out.println("executing request: " + httpget.getRequestLine());
                System.out.println("via proxy: " + proxy);
                System.out.println("to target: " + targetHost);
    
                HttpResponse response = httpclient.execute(targetHost, httpget);
                HttpEntity entity = response.getEntity();
    
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                if (entity != null) {
                    System.out.println("Response content length: " + entity.getContentLength());
                }
                EntityUtils.consume(entity);
    
            } finally {
                // When HttpClient instance is no longer needed,
                // shut down the connection manager to ensure
                // immediate deallocation of all system resources
                httpclient.getConnectionManager().shutdown();
            }
        }
    }

    HttpHost proxy = new HttpHost("localhost", 8888);设置代理的地址

     HttpResponse response = httpclient.execute(proxy,httppost);第一个参数为代理,第二个参数为真是地址

  • 相关阅读:
    Docker学习-安装,配置,运行
    Docker学习-从无知到有知的学习过程
    学习记录-java基础部分(一)
    对get post等http请求方式的理解
    Mac和window实现双向数据传输
    git pull时 git cannot lock ref XXXXXX (unable to update local ref)错误解决方案
    三年内我的计划和方向
    关于云服务器和云部署的实操(新手级别入门)
    win7蓝屏死机0x0000003B错误蓝屏故障解决
    JAVA代码:生成一个集合,自定义大小,100以内的随机整数
  • 原文地址:https://www.cnblogs.com/daxin/p/3165995.html
Copyright © 2011-2022 走看看