二、访问一下开源中国
1.材料准备
- HTTP 协议网址:
- HTTPS 协议网址:https://www.oschina.net/
2.准备 HttpClient 对象
首先我们需要获得一个 HttpClient 对象来完成我们的访问操作.那么我们需要如何构造我们的对象呢?很显然是一个咯。下面我们来看看 new 方法的说明:
- 构造一个 HttpClient 对象。
urlString
: 请求的 URL 地址。timeOut
: 请求超时时间。charset
: 请求使用的字符集,默认 UTF-8。
我们可以看到HttpClient有4个构造方法,三个参数,相信不用多说,聪明的你看看上面的说明就立刻明白了.下面我们来做两个实例化:
//构造一个基于 http 的请求
HttpClient http = new HttpClient("http://www.oschina.net","UTF-8",10000);
//构造一个基于 https 的请求
HttpClient https = new HttpClient("https://www.oschina.net/","UTF-8",10000);
3.填充HttpClient
现在我们已经有了一个 HttpClient 对象了,我们可能会需要做如下操作:
- 设置请求方法
- 设置 HTTP header
- 设置 Cookie
- 设置请求的 Part 内容(multipart/form-data)下面我们来逐一讲解: 设置 HTTP方法
public void setMethod(String method)
- 为当前 HTTP 设置请求方法,如:
GET
、POST
、HEAD
、CONNECT
、TRACE
、DELETE
等。 method
: 方法字符串。设置 HTTP Header
public Header getHeader()
返回值
: HTTP 请求头。
通过'getHeader'方法获得一个
Map
,通过对这个Map
进行put
、get
、可以对 Header 进行操作。
返回值
: 获取HTTPCookies集合。
设置 HTTP 请求参数
public HttpClient putParameters(String name,Object value)
- 为HTTP设置请求参数
name
: 参数名。value
: 参数值。
设置请求参数,不需要多说什么,需要说明的是这里设置的参数会根据
GET
/POST
(但不包括multipart/form-data请求) 等请求的规范自动附加到请求中。
添加 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
: 参数值。
4.使用 HttpClient 发送 Http 请求
好了,现在到了,我们发送 Http 请求的时候了,棒棒哒.发送 Http 请求有两种方式:
默认路径参数发送
返回值
: Response对象。指定路径发送
public Response Send(String urlString) throws Exception
urlString
: 相对于主机的相对 URL 路径,用于一次连接主机多次请求操作.例如:访问的网址是http://www.baid.com/s
,那么构造 HttpClient 时使用作为参数,调用 send 时使用/s
作为参数。- 发送HTTP请求。
返回值
: Response对象。
好了,我们可以发送请求,但不要忘了,在发送完以后记得调用'close()'方法来关闭连接哦.
下面我们来使用第一步创建的两个 HttpClient
对象来访问 开源中国
HttpClient http = new HttpClient("http://www.oschina.net","UTF-8",10000);
Logger.simple(http.send().body().getBodyString());
http.close();
HttpClient https = new HttpClient("https://www.oschina.net/","UTF-8",10000);
Logger.simple(https.send().body().getBodyString());
https.close();
HttpClient http = new HttpClient("http://www.oschina.net","UTF-8",10000);
Logger.simple(http.send().body().getBodyString());
http.close();
我们在方法调用之前连续访问了两个不同的网址,这两个网址的根域名都是 ,现在大家可以根据自己的需要修改代码进行测试了.