`
zone8089653
  • 浏览: 12238 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

httpclient初探

 
阅读更多

一、HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.1.1。

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

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

  (2)支持自动转向

  (3)支持 HTTPS 协议

  (4)支持代理服务器等

三、使用HttpClient的一般过程包括了一些步骤:

  1. Create an instance of HttpClient .创建一个实例HttpClient
  2. Create an instance of one of the methods (GetMethod in this case).创建一个实例的方法之一(在这种情况下GetMethod)。 The URL to connect to is passed in to the the method constructor.要连接的URL传递的方法构造。
  3. Tell HttpClient to execute the method.告诉HttpClient执行方法。
  4. Read the response.读取响应。
  5. Release the connection.释放连接。
  6. Deal with the response.处理与回应。

官方源码:

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.params.HttpMethodParams;

import java.io.*;

public class HttpClientTutorial {
 
  private static String url = "http://www.apache.org/";

  public static void main(String[] args) {
    // Create an instance of HttpClient.
    HttpClient client = new HttpClient();

    // Create a method instance.
    GetMethod method = new GetMethod(url);
   
    // Provide custom retry handler is necessary
    method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
    new DefaultHttpMethodRetryHandler(3, false));

    try {
      // Execute the method.
      int statusCode = client.executeMethod(method);

      if (statusCode != HttpStatus.SC_OK) {
        System.err.println("Method failed: " + method.getStatusLine());
      }

      // Read the response body.
      byte[] responseBody = method.getResponseBody();

      // Deal with the response.
      // Use caution: ensure correct character encoding and is not binary data
      System.out.println(new String(responseBody));

    } catch (HttpException e) {
      System.err.println("Fatal protocol violation: " + e.getMessage());
      e.printStackTrace();
    } catch (IOException e) {
      System.err.println("Fatal transport error: " + e.getMessage());
      e.printStackTrace();
    } finally {
      // Release the connection.
      method.releaseConnection();
    } 
  }

 

分享到:
评论

相关推荐

    xfire 初体验

    本文将对xfire进行初探,了解其核心概念和使用方法。 xfire作为一款开源项目,它的主要目标是简化Web服务的实现,使得开发人员能够快速地构建基于SOAP的服务。xfire基于Spring框架,这使得它与Spring应用集成变得...

    android开发揭秘PDF

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    《Android应用开发揭秘》附带光盘代码.

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    《Android应用开发揭秘》源码

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    Android应用开发揭秘

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    Android应用开发揭秘pdf高清版

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    android开发资料

    **6.1 Android数据存储初探** - **6.2 数据存储之SharedPreferences**: SharedPreferences是一种轻量级的数据存储方式,适用于保存简单的键值对数据。 - **6.3 数据存储之Files**: 文件存储是最常见的数据存储方式...

    NetworkingDemo_StarterCode

    《NetworkingDemo_StarterCode——基于Kotlin的网络编程实践初探》 在现代移动应用开发中,网络编程是一项至关重要的技能。"NetworkingDemo_StarterCode" 提供了一个基础的起点,帮助开发者理解如何使用Kotlin进行...

    OnlineExam:我的第一个python,flask和angluar项目

    《在线考试:初探Python、Flask与Angular的融合应用》 在线考试系统是一个现代教育技术的重要组成部分,它为教师提供了便捷的考核方式,也为学生提供了灵活的学习环境。本项目"OnlineExam"是一个基于Python、Flask...

    Android 开发技巧

    9.40、通过HTTPCLIENT从指定SERVER获取数据 265 9.41、通过FTP传输文件,关闭UI获得返回码 266 9.42、激活JAVASCRIPT打开内部链接 266 9.43、清空手机COOKIES 267 9.44、检查SD卡是否存在并且可以写入 267 9.45、...

Global site tag (gtag.js) - Google Analytics