-
Notifications
You must be signed in to change notification settings - Fork 69
HTTP客户端类使用指南
hely ho edited this page Sep 17, 2015
·
16 revisions
可实现一次 Socket 连接多次不断的发送 Http 请求.
###一、类说明 ####类路径:
org.voovan.http.client.HttpClient
####方法说明: #####1.构造函数
public HttpClient(String urlString)
- 构造一个 HttpClient 对象。
- urlString: 请求的 URL 地址。
#####2.HTTP方法设置
public void setMethod(String method)
- 为当前 HTTP 设置请求方法,如:GET、POST、HEAD、CONNECT、TRACE、DELETE等。
- method: 方法字符串。
#####3.HTTP方法设置
public Header getHeader()
- 获取HTTP 请求头。
#####4.HTTP请求参数
public HttpClient putParameters(String name,Object value)
- 为HTTP设置请求参数,这里设置的参数会根据 GET/POST(但不包括multipart/form-data请求) 等请求的规范自动附加到请求中。
- name: 参数名。
- value: 参数值。
#####5.HTTP multipart请求
public void addPart(Part part)
- 类似Form 的 Actiong="POST" enctype="multipart/form-data"提交的请求。
-
part:
org.voovan.http.message.packet.Part
对象封装了HTTP multipart请求,Part对象的有一个方便的构造函数:
public Part(String name,String value)
- name: 参数名。
- value: 参数方法。
#####6.HTTP请求参数获取
public Map<String,Object> getParameters()
- 获取 HTTP 请求的所有参数集合。
#####7.HTTP请求发送
public Response Send() throws Exception
- 发送HTTP请求,默认访问域名根。
- 返回值: Response对象。
#####7.HTTP请求发送
public Response Send(String urlString) throws Exception
-
urlString: 相对于主机的相对 URL 路径,用于一次连接主机多次请求操作.
例如:访问的网址是
http://www.baid.com/s
,那么构造 HttpClient 时使用http://www.baid.com/
作为参数,调用 send 时使用/s
作为参数。 - 发送HTTP请求。
- 返回值: Response对象。
###二、使用举例 #####1.HTTP的GET方法用例
HttpClient getClient = new HttpClient("http://webserver.voovan.com","GB2312");
//链式掉用
Response response = getClient.setMethod("GET") //设置请求方法 GET
.putParameters("name", "测试") //设置请求参数
.putParameters("age", "32") //设置请求参数
.send(); //连接并获取请求
Logger.simple(response.body().toString()); //输出响应的内容
getClient.close();
- 运行后输出HTTP GET 请求返回的响应代码。
#####2.HTTP的POST方法用例 这里请求的 Content-Type: application/x-www-form-urlencoded
HttpClient postClient = new HttpClient("http://webserver.voovan.com","GB2312");
//链式掉用
Response response = postClient.setMethod("POST") //设置请求方法 POST
.putParameters("name", "测试") //设置请求参数
.putParameters("age", "32") //设置请求参数
.send(); //连接并获取请求
Logger.simple(response.body().getBodyString("GB2312")); //输出响应的内容
postClient.close();
- 运行后输出HTTP POST请求返回的响应代码。
#####3.HTTP的POST方法用例 这里请求的 Content-Type: multipart/form-data
HttpClient mpClient = new HttpClient("http://webserver.voovan.com:28080");
//链式掉用
Response response = mpClient.setMethod("POST") //设置请求方法 POST
.addPart(new Part("name","测试","GB2312")) //构造Part对象用于为multipart的 POST 传递参数
.addPart(new Part("age","23","GB2312")) //构造Part对象用于为multipart的 POST 传递参数
.send(); //连接并获取请求
Logger.simple(response.body().getBodyString("GB2312")); //输出响应的内容
mpClient.close();
- 运行后输出HTTP POST请求返回的响应代码。