• HttpComponents 也就是以前的httpclient项目


    HttpComponents 也就是以前的httpclient项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议。不过现在的 HttpComponents 包含多个子项目,有:

    • HttpComponents Core

    • HttpComponents Client
    • HttpComponents AsyncClient
    • Commons HttpClient

    以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

    • 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)

    • 支持自动转向

    • 支持 HTTPS 协议

    • 支持代理服务器等

    • 支持Cookie

    HttpClient 示例代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    DefaultHttpClient httpclient = new DefaultHttpClient();
    try {
        HttpGet httpget = new HttpGet("https://portal.sun.com/portal/dt");
     
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
     
        System.out.println("Login form get: " + response.getStatusLine());
        EntityUtils.consume(entity);
     
        System.out.println("Initial set of cookies:");
        List<Cookie> cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        else {
            for (int i = 0; i < cookies.size(); i++) {
                System.out.println("- " + cookies.get(i).toString());
            }
        }
     
        HttpPost httpost = new HttpPost("https://portal.sun.com/amserver/UI/Login?" +
                "org=self_registered_users&" +
                "goto=/portal/dt&" +
                "gotoOnFail=/portal/dt?error=true");
     
        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("IDToken1""username"));
        nvps.add(new BasicNameValuePair("IDToken2""password"));
     
        httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
     
        response = httpclient.execute(httpost);
        entity = response.getEntity();
     
        System.out.println("Login form get: " + response.getStatusLine());
        EntityUtils.consume(entity);
     
        System.out.println("Post logon cookies:");
        cookies = httpclient.getCookieStore().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 {
        // When HttpClient instance is no longer needed,
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();
    }
  • 相关阅读:
    (转)Java new一个对象的过程中发生了什么
    多线程面试题集锦
    java调用ffmpeg获取视频文件信息的一些参数
    单点登录系统SSO实现
    Docker 项目上线
    Docker
    Docker
    Docker
    Docker
    Docker
  • 原文地址:https://www.cnblogs.com/timssd/p/4719828.html
Copyright © 2020-2023  润新知