httpclient4.x配置帶用戶名和密碼的代理

package test;

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.Credentials;
import org.apache.http.auth.NTCredentials;
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;


public class ClientProxy {
   
    private static String PROXY_HOST="";
    private static int PROXY_PORT=8080;
    private static String PROXY_USERNAME="";
    private static String PROXY_PASSWORD="";
    private static String PROXY_WORKSTATION="";
    private static String PROXY_DOMAIN="";
    private static String TARGET_HOST="";
    private static String TARGET_GETURL="/index.html";
   
    public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            AuthScope authscope=new AuthScope(PROXY_HOST, PROXY_PORT);
            Credentials credentials=new NTCredentials(PROXY_USERNAME,PROXY_PASSWORD,PROXY_WORKSTATION,PROXY_DOMAIN);
            httpclient.getCredentialsProvider().setCredentials(authscope,credentials);
            HttpHost targetHost = new HttpHost(TARGET_HOST);
            HttpHost proxy = new HttpHost(PROXY_HOST, PROXY_PORT);
            httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
            HttpGet httpget = new HttpGet(TARGET_GETURL);
           
            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 {
            httpclient.getConnectionManager().shutdown();
        }
    }
}

發佈了100 篇原創文章 · 獲贊 6 · 訪問量 9221
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章