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;
|
03 |
import java.io.IOException;
|
04 |
import java.net.URISyntaxException;
|
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;
|
11 |
public class BasicExample {
|
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);
|
分享到:
相关推荐
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的...
7. **lib特别需要的包**:在提供的压缩包中,"lib特别需要的包"可能包含了Apache Axis或者其他相关库,这些库是Java客户端调用WebService所必需的,如axis.jar、wsdl4j.jar、saaj-api.jar等。确保将这些库添加到项目...
`ftp4j`是一个功能丰富的Java FTP客户端库,它提供了一套完整的API,方便开发者在Java应用程序中集成FTP功能。 `ftp4j`类库的主要特性包括: 1. **连接与断开**:`FtpClient`类是ftp4j的核心,通过`connect()`方法...
Http客户端程序已集成在Java语言中,可以通过URLConnection类调用。遗憾的是,由于SUN没有公布Http客户程序的源码,它实现的细节仍是一个谜。本文根据HTTP协议规范,用Java.net.Socket类实现一个HTTP协议客户端程序...
这可以通过 Axis 的 wsimport 工具实现,它会根据服务的WSDL生成对应的Java客户端代码。这些代码包含了客户端 stubs 和 skeletons,用于封装和解封装SOAP消息。一旦客户端代码生成,你就可以像调用本地方法一样调用...
标题“dgraph4j,dgraph的官方java客户端.zip”表明这是一个与Java相关的开源项目,具体是dgraph数据库的官方Java客户端库。dgraph4j是这个库的名字,它允许Java开发者通过Java代码与dgraph数据库进行交互。 **描述...
JAVA源码FTP客户端Java类库ftp4j
此Java网络五子棋系统由四个主要的类组成: 1. **`chessClient.java`**: 客户端主程序。 2. **`chessInterface.java`**: 客户端的图形用户界面。 3. **`chessPad.java`**: 棋盘的绘制逻辑及交互处理。 4. **`...
在 Java 中实现 OPC 客户端,常见的库有如 jOPC、J-OPC 和 OpenOPC 等。这些库为 Java 应用程序提供了与 OPC 服务器交互的接口和类。以 jOPC 为例,它的使用步骤大致如下: 1. 引入 jOPC 库:将 jOPC 的 JAR 文件...
"基于java的FTP客户端Java类库 ftp4j.zip"就是一个这样的类库,它允许Java程序员轻松地与FTP服务器进行交互,进行文件的上传、下载、删除等操作。 ftp4j是一个开源的Java FTP客户端库,由意大利开发者Marco ...
java资源FTP客户端Java类库 ftp4j提取方式是百度网盘分享地址
Java FTP客户端库ftp4j是Java开发者用于实现FTP(文件传输协议)功能的强大工具。FTP是一种广泛用于在网络上上传、下载文件的标准协议。FTP4j是一个开源的Java库,由Sergio Bossa开发,它提供了丰富的API,使开发者...
在JAVA开发邮件客户端的过程中,涉及的关键技术和知识点相当广泛,涵盖了网络通信、邮件协议以及JAVA编程等多个领域。以下是对这些核心内容的详细解析: 1. **SMTP协议**:Simple Mail Transfer Protocol,简单邮件...
《FTP客户端Java类库ftp4j的深度解析》 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议,广泛应用于互联网上文件的上传和下载。在Java编程中,为了方便开发者实现FTP功能,有许多优秀的类库可...
标题中的“dgraph4j”指的是一个专门为DGraph数据库设计的Java客户端库。DGraph是一款分布式图数据库,它提供强大的查询能力,适用于处理复杂的数据关系。"官方Java客户端.zip"表明这是一个官方提供的Java客户端的源...
"J-FTP"是这样的一个客户端,它提供了友好的用户界面和丰富的功能,方便开发者或普通用户在Java环境中与FTP服务器交互。 在Java中,实现FTP功能主要依赖于`java.net`和`java.io`这两个核心包。`java.net....
这次,Memcached Java Client推出的2.6.1发布版是基于全新的performance分支,具有如下重大改进: 较之老版本,在性能上有...加入了slf4j logger支持,使得开发人员可以方便的记录日志; 支持自定义的对象序列化方法。
chessClient.java:客户端主程序。 chessInterface.java:客户端的界面。 chessPad.java:棋盘的绘制。 chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 没有加上详细注释,不过绝对可以运行,...
Java的log4j或java.util.logging框架可以用于记录客户端运行过程中的信息,方便开发者分析和优化程序。 通过深入研究这个Java版飞信客户端的源码,开发者不仅可以提升对Java编程语言的理解,还能掌握网络通信、GUI...