HttpClient是用来发送HTTP请求的,也就是HTTP的客户端。任何HTTP请求都可以由它模拟出来。
1.发送GET请求:
HttpClient httpClient = new DefaultHttpClient();
// 初始化GET请求
HttpGet get = new HttpGet("http://localhost:8080");
// 执行GET请求
HttpResponse response = httpClient.execute(get);
// 获取请求返回的数据
HttpEntity entity = response.getEntity();
if (entity != null) {
entity = new BufferedHttpEntity(entity);
InputStream in = entity.getContent();
byte[] read = new byte[1024];
byte[] all = new byte[0];
int num;
while ((num = in.read(read)) > 0) {
byte[] temp = new byte[all.length + num];
System.arraycopy(all, 0, temp, 0, all.length);
System.arraycopy(read, 0, temp, all.length, num);
all = temp;
}
System.out.println(new String(all));
in.close();
}
// 一次GET请求结束
get.abort();
2.发送POST请求
HttpClient httpClient = new DefaultHttpClient();
HttpPost get = new HttpPost("http://localhost:8080/xxxxxx");
//创建表单参数列表
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
// 添加参数
qparams.add(new BasicNameValuePair("id", "5"));
//填充表单
get.setEntity(new UrlEncodedFormEntity(qparams,"UTF-8"));
// 执行POST请求
HttpResponse response = httpClient.execute(get);
HttpEntity entity = response.getEntity();
// ......
// 接下来就与GET一样了
3.自己封装请求的输入流
HttpClient httpClient = new DefaultHttpClient();
// 封装输入流
ContentProducer cp = new ContentProducer() {
public void writeTo(OutputStream outstream) throws IOException {
Writer writer = new OutputStreamWriter(outstream, "UTF-8");
writer.write("write the stream by myself");
writer.flush();
}
};
HttpEntity requestEntity = new EntityTemplate(cp);
HttpPost httppost = new HttpPost("http://localhost:8080/xxx");
httppost.setEntity(requestEntity);
HttpResponse response = httpClient.execute(httppost);
HttpEntity entity = response.getEntity();
// 接下来与GET/POST一样了。
分享到:
相关推荐
**HttpClient 使用基础** 要使用HttpClient,首先需要在项目中引入对应的jar包。在这个压缩包中,"apache-httpclient"包含了HttpClient所需的所有依赖。以下是一些基本的使用步骤: 1. **创建HttpClient实例**: ...
HttpClient库广泛应用于需要与Web服务器进行交互的Java应用中,包括发送GET和POST请求等基本操作。 ### GET请求 GET请求是最常见的HTTP请求方法,用于从服务器获取资源。使用HttpClient发起GET请求的步骤如下: 1....
本教程将深入探讨如何利用HttpClient类在WPF应用中异步调用Web API,确保不阻塞主线程,提供流畅的用户体验。 HttpClient是一个强大的工具,用于发送HTTP请求并接收响应。在WPF应用中,我们可以使用异步编程技术,...
《HttpClient 4.5.5:全面解析与应用实践》 HttpClient 是 Apache 开源基金会提供的一款强大而灵活的 Java 客户端 HTTP 实现库,主要用于处理 HTTP 协议的请求和响应。HttpClient 4.5.5 版本是其系列中的一个重要...
Java HttpClient 是一个强大的HTTP客户端库,它允许Java开发者在应用程序中发送HTTP请求并接收响应,广泛应用于Web服务的调用、API接口测试以及自动化脚本等场景。在Java项目中,使用HttpClient可以实现与Web服务器...
5. **HTTP/2 支持**:虽然不是 HttpClient 4.5 的主要目标,但为后续版本的 HTTP/2 支持奠定了基础。 三、HttpClient 4.5 源码解析 1. **执行流程**:从 `HttpClient.execute()` 方法开始,通过 `...
同时,HttpClient依赖于HttpCore库,这是Apache提供的基础HTTP协议处理组件,httpcore-4.4.1.jar即为该组件的4.4.1版本,提供了HTTP连接管理、请求/响应模型等核心功能。 **一、HttpClient基本概念** 1. **...
《HttpClient 4.0:Java中的HTTP客户端库详解》 HttpClient是Apache软件基金会下的一个开源项目,主要用于处理HTTP协议的客户端编程...了解并熟练掌握HttpClient的使用,对于提升Java应用的网络通信效率具有重要意义。
HttpClient是Apache软件基金...HttpClient库广泛应用于Java开发,无论是简单的HTTP请求还是复杂的Web服务交互,都能提供强大的支持。在使用过程中,注意根据项目需求进行适当的配置和优化,以确保最佳的性能和可靠性。
本文将围绕HttpClient 4.4.1和4.5.3这两个版本,深入探讨它们的特性和改进,以帮助开发者更好地理解和应用这个强大的工具。 1. HttpClient 4.4.1 HttpClient 4.4.1是HttpClient系列的一个稳定版本,它主要关注性能...
它是一个低级别的库,主要用于网络通信,为开发者提供了构建 HTTP 客户端应用程序的基础。由于其强大的功能和灵活性,HttpClient 在许多企业级应用和 Web 服务客户端中被广泛使用。 HttpClient 4.3 版本可能包括对 ...
HttpClient 4.1.2是Apache HttpClient的一个稳定版本,它在前一版本的基础上进行了优化和增强,为开发者提供了更加高效、可靠的网络请求处理能力。 HttpClient 4.1.2的核心在于其对HTTP协议的全面支持,包括基本的...
在基础知识方面,文档首先讲解了环境的准备,包括下载HttpClient包并将其导入到工程中的具体步骤。随后介绍了几个主要的类,例如HttpClient类、HttpEntity类、HttpConnection类等,这些类分别承担着HTTP客户端实例化...
2. **HttpCore库**:`httpcore-x.x.x.jar`是HttpClient的基础组件,提供HTTP协议的基本操作,如连接管理、请求/响应处理等。HttpClient依赖HttpCore来处理底层的网络通信。 3. **HTTP协议支持**:HttpClient支持...
- 虽然HttpClient 4.2.5主要针对HTTP/1.1,但已经开始为HTTP/2做准备,提供了一些基础支持。 10. **性能优化**: - 使用预连接(pre-emptive authentication)和连接池来减少延迟,提高响应速度。 - 使用压缩...
HttpClient是Apache基金会开发的一个开源HTTP客户端库,广泛应用于Java编程领域,用于执行HTTP请求和处理响应。标题“httpclient所需lib”表明我们关注的是HttpClient库及其相关的依赖库。在本篇文章中,我们将深入...
1. **HttpClient对象**:HttpClient是所有操作的基础,它代表一个HTTP客户端,可以配置连接管理器、请求执行器等组件。 2. **HttpMethod**:HttpClient提供了多种HttpMethod子类,如GetMethod、PostMethod等,分别...
本篇将重点介绍HttpClient4的基础用法,特别是如何通过匿名代理来访问网页。 首先,让我们了解什么是HTTP代理。在互联网通信中,代理服务器充当了客户端与目标服务器之间的中介,可以用于匿名访问、负载均衡、缓存...
2. **请求与响应**:HttpClient 使用`HttpRequestBase`作为所有HTTP请求的基础类,如`HttpGet`, `HttpPost`等。这些类提供了设置请求方法、URL、头部、实体内容的方法。响应则由`HttpResponse`表示,包含了状态码、...
2. `HttpCore`:这是HttpClient的基础组件,负责网络I/O操作,如TCP连接管理和数据传输。HttpCore提供了低级别的API,为HttpClient提供了高效的连接管理和请求处理能力。 3. `Fluent API`:这是一个增强的接口,...