zoukankan      html  css  js  c++  java
  • HttpClient设置代理,超时,以及得到cookies

    import java.net.URI;
    import java.util.List;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpHost;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpUriRequest;
    import org.apache.http.client.methods.RequestBuilder;
    import org.apache.http.cookie.Cookie;
    import org.apache.http.impl.client.BasicCookieStore;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    
    public class Http {
    
        // 如何通过一个代理发送一个HTTP请求。
        public void action1() throws Exception {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                HttpHost target = new HttpHost("ip1", 8080, "https");
                HttpHost proxy = new HttpHost("ip2", 8080, "http");
    
                RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
                HttpGet request = new HttpGet("/");
                request.setConfig(config);
    
                System.out.println("Executing request " + request.getRequestLine()
                        + " to " + target + " via " + proxy);
    
                httpclient.execute(target, request);
            } finally {
                httpclient.close();
            }
        }
    
        // 得到cookies。
        public void action2() throws Exception {
            BasicCookieStore cookieStore = new BasicCookieStore();
            CloseableHttpClient httpclient = HttpClients.custom()
                    .setDefaultCookieStore(cookieStore).build();
             try {
    //                HttpGet httpget = new HttpGet("https://someportal/?username=username&password=password");
    //                CloseableHttpResponse response = httpclient.execute(httpget);
                    HttpUriRequest login = RequestBuilder.post()
                        .setUri(new URI("https://www.baidu.com/"))
                        .addParameter("username", "username")
                        .addParameter("password", "password").build();
                    httpclient.execute(login);
        
                    System.out.println("请求所得的 cookies:");
                    List<Cookie> cookies = cookieStore.getCookies();
                    if (cookies.isEmpty()) {
                        System.out.println("None");
                    } else {
                        for (int i = 0; i < cookies.size(); i++) {
                            System.out.println("- " + cookies.get(i).toString());
                        }
                    }
                
            } finally {
                httpclient.close();
            }
    
        }
        // 设置超时。
            public void action3() throws Exception {
                CloseableHttpClient httpclient = HttpClients.createDefault();
                RequestConfig requestConfig = RequestConfig.custom()
                        .setSocketTimeout(1000)
                        .setConnectTimeout(1000)
                        .build();
                HttpGet httpget1 = new HttpGet("https://www.baidu.com");
                httpget1.setConfig(requestConfig);
                httpclient.execute(httpget1);
            }
    }
  • 相关阅读:
    谈谈 OC 中的内联函数
    Spring 新手教程(二) 生命周期和作用域
    实时竞价(RTB) 介绍(基础篇)
    oracle数据库性能优化方案精髓整理收集回想
    HNU 13411 Reverse a Road II(最大流+BFS)经典
    CSS3主要知识点复习总结+HTML5新增标签
    修改默认MYSQL数据库data存放位置
    mysql状态查看 QPS/TPS/缓存命中率查看
    Mysql5.7.10新加用户
    很靠谱linux常用命令
  • 原文地址:https://www.cnblogs.com/mcahkf/p/5180215.html
Copyright © 2011-2022 走看看