`
xfyuanjun
  • 浏览: 12220 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java HTTP客户端 http4j

阅读更多

http4j是一个开源的Java HTTP客户端,主要是源自对工作中的一个项目设计的不满和扩展Apache HttpComponent比较麻烦。

不同于Apache HttpComponent (HttpClient)之处在于:

1. 专注于“客户端”定位:省去很多不必要的抽象层以及功能,如解析HTTP请求等。
2. 立足于方便易用:从主页的例子中可以看出使用http4j是极其方便的。
3. 原生的较完善的数据统计: DNS解析耗时,request发送耗时,等待耗时,response接收耗时,字节数等等。这个是为了方便关注网站性能或者流量开销(购买云计算服务时会特别关注自己的成本)的应用。在Apache的项目中,使用者需要定义自己的Proxy才能实现此功能。示例代码:

01 package com.google.code.http4j.example;
02  
03 import java.io.IOException;
04 import java.net.URISyntaxException;
05  
06 import com.google.code.http4j.Client;
07 import com.google.code.http4j.Response;
08 import com.google.code.http4j.impl.BasicClient;
09 import com.google.code.http4j.utils.Metrics;
10  
11 public class BasicExample {
12          
13         public static void main(String[] args) throws InterruptedException, IOException, URISyntaxException {
14                 Client client = new BasicClient();
15                 Response response = client.get("http://code.google.com/p/http4j/");
16                 Metrics metrics = response.getMetrics();
17                 System.out.println("Bytes sent:" + metrics.getBytesSent());
18                 System.out.println("Bytes received:" + metrics.getBytesReceived());
19                 System.out.println("Blocking cost:" + metrics.getBlockingCost());
20                 System.out.println("DNS lookup cost:" + metrics.getDnsLookupCost());
21                 System.out.println("Connection establish cost:" + metrics.getConnectingCost());
22                 System.out.println("Sending cost:" + metrics.getSendingCost());
23                 System.out.println("Waiting cost:" + metrics.getWaitingCost());
24                 System.out.println("Receiving cost:" + metrics.getReceivingCost());
25                 System.out.println("SSL handshake cost:" + metrics.getSslHandshakeCost());
26                 response.output(System.out);
27                 client.shutdown();
28         }
29

}

 

 

项目下载地址: http://code.google.com/p/http4j/

分享到:
评论

相关推荐

    Feign 使编写 Java http 客户端更加容易.zip

    Feign 简化了编写 Java HTTP 客户端的过程 Feign 是一个受Retrofit、JAXRS-2.0和WebSocket启发的 Java 到 HTTP 客户端绑定器。Feign 的首要目标是降低将Denominator统一绑定到 HTTP API 的复杂性,而不管ReSTfulness...

    基于java的开发源码-FTP客户端Java类库 ftp4j.zip

    基于java的开发源码-FTP客户端Java类库 ftp4j.zip 基于java的开发源码-FTP客户端Java类库 ftp4j.zip 基于java的开发源码-FTP客户端Java类库 ftp4j.zip 基于java的开发源码-FTP客户端Java类库 ftp4j.zip 基于java的...

    webservice在java中客户端调用

    7. **lib特别需要的包**:在提供的压缩包中,"lib特别需要的包"可能包含了Apache Axis或者其他相关库,这些库是Java客户端调用WebService所必需的,如axis.jar、wsdl4j.jar、saaj-api.jar等。确保将这些库添加到项目...

    FTP客户端Java类库 ftp4j

    `ftp4j`是一个功能丰富的Java FTP客户端库,它提供了一套完整的API,方便开发者在Java应用程序中集成FTP功能。 `ftp4j`类库的主要特性包括: 1. **连接与断开**:`FtpClient`类是ftp4j的核心,通过`connect()`方法...

    使用java控制HTTP协议客户端应用.rar_HTTP java_HTTP 协议 客户端_HTTP协议_java http_j

    Http客户端程序已集成在Java语言中,可以通过URLConnection类调用。遗憾的是,由于SUN没有公布Http客户程序的源码,它实现的细节仍是一个谜。本文根据HTTP协议规范,用Java.net.Socket类实现一个HTTP协议客户端程序...

    java版WebService生成客户端和服务端的实例

    这可以通过 Axis 的 wsimport 工具实现,它会根据服务的WSDL生成对应的Java客户端代码。这些代码包含了客户端 stubs 和 skeletons,用于封装和解封装SOAP消息。一旦客户端代码生成,你就可以像调用本地方法一样调用...

    dgraph4j,dgraph的官方java客户端.zip

    标题“dgraph4j,dgraph的官方java客户端.zip”表明这是一个与Java相关的开源项目,具体是dgraph数据库的官方Java客户端库。dgraph4j是这个库的名字,它允许Java开发者通过Java代码与dgraph数据库进行交互。 **描述...

    JAVA源码FTP客户端Java类库ftp4j

    JAVA源码FTP客户端Java类库ftp4j

    Java网络五子棋chessClient.java:客户端主程序。chessInterface.java:客户端的界面。

    此Java网络五子棋系统由四个主要的类组成: 1. **`chessClient.java`**: 客户端主程序。 2. **`chessInterface.java`**: 客户端的图形用户界面。 3. **`chessPad.java`**: 棋盘的绘制逻辑及交互处理。 4. **`...

    java实现opc服务客户端代码

    在 Java 中实现 OPC 客户端,常见的库有如 jOPC、J-OPC 和 OpenOPC 等。这些库为 Java 应用程序提供了与 OPC 服务器交互的接口和类。以 jOPC 为例,它的使用步骤大致如下: 1. 引入 jOPC 库:将 jOPC 的 JAR 文件...

    基于java的FTP客户端Java类库 ftp4j.zip

    "基于java的FTP客户端Java类库 ftp4j.zip"就是一个这样的类库,它允许Java程序员轻松地与FTP服务器进行交互,进行文件的上传、下载、删除等操作。 ftp4j是一个开源的Java FTP客户端库,由意大利开发者Marco ...

    java资源FTP客户端Java类库ftp4j

    java资源FTP客户端Java类库 ftp4j提取方式是百度网盘分享地址

    基于Java的FTP客户端Java类库 ftp4j.zip

    Java FTP客户端库ftp4j是Java开发者用于实现FTP(文件传输协议)功能的强大工具。FTP是一种广泛用于在网络上上传、下载文件的标准协议。FTP4j是一个开源的Java库,由Sergio Bossa开发,它提供了丰富的API,使开发者...

    JAVA开发邮件客户端

    在JAVA开发邮件客户端的过程中,涉及的关键技术和知识点相当广泛,涵盖了网络通信、邮件协议以及JAVA编程等多个领域。以下是对这些核心内容的详细解析: 1. **SMTP协议**:Simple Mail Transfer Protocol,简单邮件...

    java源码:FTP客户端Java类库 ftp4j.zip

    《FTP客户端Java类库ftp4j的深度解析》 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议,广泛应用于互联网上文件的上传和下载。在Java编程中,为了方便开发者实现FTP功能,有许多优秀的类库可...

    dgraph4j,官方Java客户端.zip

    标题中的“dgraph4j”指的是一个专门为DGraph数据库设计的Java客户端库。DGraph是一款分布式图数据库,它提供强大的查询能力,适用于处理复杂的数据关系。"官方Java客户端.zip"表明这是一个官方提供的Java客户端的源...

    jftp.rar_ftp_ftp客户端 java_j-ftp_java client_java ftp

    "J-FTP"是这样的一个客户端,它提供了友好的用户界面和丰富的功能,方便开发者或普通用户在Java环境中与FTP服务器交互。 在Java中,实现FTP功能主要依赖于`java.net`和`java.io`这两个核心包。`java.net....

    java memcahe 客户端 2.6.1

    这次,Memcached Java Client推出的2.6.1发布版是基于全新的performance分支,具有如下重大改进: 较之老版本,在性能上有...加入了slf4j logger支持,使得开发人员可以方便的记录日志; 支持自定义的对象序列化方法。

    java网络五子棋的源代码.rar_java 五子棋_jsp棋_五子棋java_客户端 服务器_网络五子棋 java

    chessClient.java:客户端主程序。 chessInterface.java:客户端的界面。 chessPad.java:棋盘的绘制。 chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 没有加上详细注释,不过绝对可以运行,...

    java版飞信客户端源码

    Java的log4j或java.util.logging框架可以用于记录客户端运行过程中的信息,方便开发者分析和优化程序。 通过深入研究这个Java版飞信客户端的源码,开发者不仅可以提升对Java编程语言的理解,还能掌握网络通信、GUI...

Global site tag (gtag.js) - Google Analytics