• HttpClient(一)


    简介:
    HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

    几个重要的类:
    HttpClient  --------------    HttpClient代表了一个http的客户端,HttpClient接口定义了大多数基本的http请求执行行为。
    HttpEntity  --------------    entity是发送或者接收消息的载体,entities 可以通过request和response获取到。
    HttpConnection ---------    HttpConnection代表了一个http连接。

     1 HttpClient httpclient = new DefaultHttpClient();
     2     try {
     3         // 创建httpget.
     4         HttpGet httpget = new HttpGet("http://www.baidu.com/");
     5         System.out.println("executing request " + httpget.getURI());
     6         // 执行get请求.
     7         HttpResponse response = httpclient.execute(httpget);
     8         // 获取响应实体
     9         HttpEntity entity = response.getEntity();
    10         System.out.println("--------------------------------------");
    11         // 打印响应状态
    12         System.out.println(response.getStatusLine());
    13         if (entity != null) {
    14         // 打印响应内容长度
    15         System.out.println("Response content length: "
    16             + entity.getContentLength());
    17         // 打印响应内容
    18         System.out.println("Response content: "
    19             + EntityUtils.toString(entity));
    20         }
    21         System.out.println("------------------------------------");
    22     }catch(Exception e){
    23         e.printStackTrace();
    24     } finally {
    25         // 关闭连接,释放资源
    26         httpclient.getConnectionManager().shutdown();
    27     }

    打印结果:
    executing request http://localhost:8080/struts2/
    --------------------------------------
    HTTP/1.1 200 OK
    Response content length: 395
    Response content:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="user!login.action" method="post">
    <input type="text" name="msg" />
    <input type="submit" value="submit"/>
    </form>
    </body>
    </html>
    ------------------------------------

  • 相关阅读:
    Foundation与Core Foundation内存管理基本原则简述
    Quartz2D 图像处理
    XCode中的特殊快捷键图标
    UITableView的编辑模式
    Cocoa框架中的内存分区
    Cocoa 框架为什么采用两阶段的方式来创建对象?
    IOS中的内存不足警告处理(译)
    Caching和Purgeable Memory (译)
    3年后,我回来了
    POJ3632 Optimal Parking
  • 原文地址:https://www.cnblogs.com/xuekyo/p/2573653.html
Copyright © 2020-2023  润新知