• 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);
            }
    }
  • 相关阅读:
    NLPIR大数据语义系统文本数据分析挖掘平台
    NLPIR:中文语义挖掘是自然语言处理的关键
    NLPIR-JZSearch智能搜索深层挖掘大数据资源
    NLPIR智能Protege知识图谱实现多场景应用
    DotNet加密方式解析--散列加密
    SSO单点登录PHP简单版
    xss框架基础框架实现
    Kafka Offset Storage
    C#如何使用ES
    模拟Vue之数据驱动
  • 原文地址:https://www.cnblogs.com/mcahkf/p/5180215.html
Copyright © 2020-2023  润新知