Skip to content

HTTP客户端类使用指南

hely ho edited this page Sep 17, 2015 · 16 revisions

HTTP客户端类使用指南

可实现一次 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请求返回的响应代码。