转自: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)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
(1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...
服务调用通常涉及到使用HTTP客户端,可以是Jersey自带的`WebTarget`或第三方库如Apache HttpClient。调用者根据REST接口的URL、HTTP方法和可能需要的参数,发送请求并接收响应。例如,使用Jersey的`Client`和`...
在实际环境中,CAS不仅可以与Tomcat集成,还可以与其他Java应用服务器(如Jetty、JBoss)或Web应用框架(如Spring Boot)配合使用。此外,CAS支持多种协议,如CAS Protocol、SAML 2.0和OpenID Connect,使其具有广泛...
Consul来自HashiCorp,同样提供服务发现,自带配置中心功能,服务端和客户端均需要单独部署,并且服务端需要搭建集群。 配置中心组件中,SpringCloud Config分为Server和Client两部分,Server负责配置文件的存储及...
5. **客户端支持**:在前端,使用JavaScript的WebSocket API或者基于Stomp的库(如`sockjs-client`和`stompjs`)与Spring的WebSocket服务器通信。 6. **测试与调试**:使用WebSocket客户端工具或自定义的测试页面,...
5. **测试服务**: 使用Axis自带的`testClient`或自定义客户端调用服务,验证部署是否成功。 接下来,我们来看JAXB的角色。JAXB允许你通过注解将Java类映射为XML Schema,反之亦然。在Web服务中,JAXB通常用于处理...
也可以使用Jersey自带的内置服务器来快速测试服务。 总结,Jersey作为JSR-311的实现,是构建RESTful服务的优秀选择。通过"jersey-samples-1.0.3"中的实例,开发者可以逐步掌握REST服务的开发,从而更好地理解和运用...
8. **测试Web服务**:可以使用Axis自带的客户端工具 AxisClient 或者通过编写简单的SOAP请求来测试服务。此外,还可以使用在线工具如SoapUI进行功能验证。 9. **调用Web服务**:客户端通过解析WSDL文件获取服务的...
此时,Jenkins自带的Jetty服务器将启动,可以通过浏览器访问Jenkins。 4. **初始化设置** 第一次启动Jenkins时,需要设置初始管理员密码。此密码通常位于`/var/lib/jenkins/`目录下的一个秘密文件中。在浏览器中...
2. **Java Keytool**:Java自带的工具Keytool用于生成和管理数字证书,包括创建自签名证书和导入/导出证书。了解如何使用keytool生成Keystore和Truststore,这对于配置HTTPS服务器至关重要。 3. **Java Secure ...
23. Hadoop 集群需要额外的权限管理和安全措施,但这不是 Hadoop 自带的,因此该判断题错误。 24. Slave 节点的磁盘大小取决于存储需求,因此该判断题正确。 25. `hadoop dfsadmin –report` 命令用于报告 HDFS ...
在某些情况下,可能是由于项目与运行环境中的库版本冲突,例如容器(如 Jetty)自带的 jar 包版本较旧。 解决思路: 1. 依赖容器的 jar 重新编写代码,以适应容器提供的库版本。 2. 更新容器的 jar 版本,使其与...