`
kyo19
  • 浏览: 73424 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

使用jetty 自带的http client!

    博客分类:
  • java
阅读更多

转自:http://iamrunning.iteye.com/blog/405444

一般情况下我们需要使用HttpClient时可供选择的技术有: 
1、HttpURLConnection 
2、Apache HttpClient 
其他的除了写Socket 我都没有用过了。 

偶然的机会发现Jetty 里面也自带了一个HttpClient,并且支持事件触发的处理方式。 

HttpClient client = new HttpClient();
client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
try
{
  client.start();
}
catch (Exception e)
{
  throw new ServletException(e);
}

// create the exchange object, which lets you define where you want to go
// and what you want to do once you get a response
ContentExchange exchange = new ContentExchange()
{
  // define the callback method to process the response when you get it back
  protected void onResponseComplete() throws IOException
  {
    super.onResponseComplete();
    String responseContent = this.getResponseContent();

    // do something with the response content
    ...
  }
};

exchange.setMethod("GET");
exchange.setURL("http://www.example.com/");

// start the exchange
client.send(exchange);

 

 

public static void main(String[] args) throws Exception {
		HttpClient httpClient = new HttpClient();
		// set up httpClient
		httpClient.start();
		ContentExchange contentExchange = new ContentExchange();
		httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
		contentExchange.setURL("http://www.iteye.com");
		httpClient.send(contentExchange);
		contentExchange.waitForDone();
		System.err.println("Response status: "
				+ contentExchange.getResponseStatus());
		byte[] responseContentBytes = contentExchange.getResponseContentBytes();
		System.out.println(new String (responseContentBytes,"UTF-8"));
	}

 

 

分享到:
评论
1 楼 beneo 2010-12-08  
我不得不来感谢你一下

getResponseContent 返回null
getResponseContentBytes 返回数据

我真的要来感谢你一下

相关推荐

    jetty-client-9.4.11.v20180605.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    jetty-client-9.4.43.v20210629.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    动态发布rest接口及服务调用

    服务调用通常涉及到使用HTTP客户端,可以是Jersey自带的`WebTarget`或第三方库如Apache HttpClient。调用者根据REST接口的URL、HTTP方法和可能需要的参数,发送请求并接收响应。例如,使用Jersey的`Client`和`...

    CAS-Server-Client单点登录demo

    在实际环境中,CAS不仅可以与Tomcat集成,还可以与其他Java应用服务器(如Jetty、JBoss)或Web应用框架(如Spring Boot)配合使用。此外,CAS支持多种协议,如CAS Protocol、SAML 2.0和OpenID Connect,使其具有广泛...

    SpringCloud配置大全.pdf

    Consul来自HashiCorp,同样提供服务发现,自带配置中心功能,服务端和客户端均需要单独部署,并且服务端需要搭建集群。 配置中心组件中,SpringCloud Config分为Server和Client两部分,Server负责配置文件的存储及...

    Spring+Netty+WebSocket实例

    5. **客户端支持**:在前端,使用JavaScript的WebSocket API或者基于Stomp的库(如`sockjs-client`和`stompjs`)与Spring的WebSocket服务器通信。 6. **测试与调试**:使用WebSocket客户端工具或自定义的测试页面,...

    axis部署WebServices 和 JAXB的使用

    5. **测试服务**: 使用Axis自带的`testClient`或自定义客户端调用服务,验证部署是否成功。 接下来,我们来看JAXB的角色。JAXB允许你通过注解将Java类映射为XML Schema,反之亦然。在Web服务中,JAXB通常用于处理...

    jersey 代码例子

    也可以使用Jersey自带的内置服务器来快速测试服务。 总结,Jersey作为JSR-311的实现,是构建RESTful服务的优秀选择。通过"jersey-samples-1.0.3"中的实例,开发者可以逐步掌握REST服务的开发,从而更好地理解和运用...

    axis入门教程-开发详解

    8. **测试Web服务**:可以使用Axis自带的客户端工具 AxisClient 或者通过编写简单的SOAP请求来测试服务。此外,还可以使用在线工具如SoapUI进行功能验证。 9. **调用Web服务**:客户端通过解析WSDL文件获取服务的...

    Jenkins安装-使用教

    此时,Jenkins自带的Jetty服务器将启动,可以通过浏览器访问Jenkins。 4. **初始化设置** 第一次启动Jenkins时,需要设置初始管理员密码。此密码通常位于`/var/lib/jenkins/`目录下的一个秘密文件中。在浏览器中...

    Major_Element:https

    2. **Java Keytool**:Java自带的工具Keytool用于生成和管理数字证书,包括创建自签名证书和导入/导出证书。了解如何使用keytool生成Keystore和Truststore,这对于配置HTTPS服务器至关重要。 3. **Java Secure ...

    大数据技术Hadoop笔试题.doc.docx

    23. Hadoop 集群需要额外的权限管理和安全措施,但这不是 Hadoop 自带的,因此该判断题错误。 24. Slave 节点的磁盘大小取决于存储需求,因此该判断题正确。 25. `hadoop dfsadmin –report` 命令用于报告 HDFS ...

    Java实现邮件发送遇到的问题

    在某些情况下,可能是由于项目与运行环境中的库版本冲突,例如容器(如 Jetty)自带的 jar 包版本较旧。 解决思路: 1. 依赖容器的 jar 重新编写代码,以适应容器提供的库版本。 2. 更新容器的 jar 版本,使其与...

Global site tag (gtag.js) - Google Analytics