先来分析下程序的流程,按照[url=/blog/1070623]前一章[/url]中所介绍的HttpClient所提供的功能支持,我们首先需要确定的是所要访问的目标服务器的域名(www.renren.com),确定访问方法(首次访问,一般都是GET请求),然后确定访问的路径(/,即根路径),端口为默认端口(80)。那么我们就可以通过以下一段代码向人人网服务器发送默认的“欢迎页面”发送请求了。
如果执行以上代码的话,最后的status将被设置为200,也就是人人网的服务器对我的请求做出来正常响应,访问成功。 那么接下来的问题是,该如何查看服务器的响应信息,就像[url=/blog/1070623]HttpClient学习笔记一[/url]中所介绍的,可以通过GetMethod实例的getResponseBody以及getResponseHeaders方法获取目标服务器所作出的响应的头部信息以及消息内容。
代码如下:
具体的运行结果(由于消息体的内容较大,以下只列出了响应的头部信息),如下:
[quote]Server: nginx/0.7.67
Date: Sat, 04 Jun 2011 10:41:38 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: _r01_=1; domain=.renren.com; path=/; expires=Tue, 29-May-2012 10:41:38 GMT[/quote]
[color=red](消息体内容可以通过在人人网的“欢迎页面”中通过“查看源代码”来查看响应的内容。)[/color]
通过查看响应头部信息可以获取,人人的服务器名称以及版本号(nginx,0.7.67);返回的消息体的内容类型为HTML文本,字符编码格式为UTF-8格式;同时本次会话所产生的Session内容为:_r01_=1; domain=.renren.com;
这个小例子只是简单的向服务器发送GET请求,并将响应信息打印到控制台中,所实现的功能与Telent基本类似,并无任何实际应用价值。但是可以通过它来熟悉HttpClient的原理,以及开发方法。 下一章将介绍如何通过HttpClient实现登录人人网的操作。
HttpClient client = new HttpClient();//声明HttpClient实例 client.getHostConfiguration().setHost("www.renren.com"80);//设置目标服务器域名及端口号
GetMethod get = new GetMethod("/");//声明GET请求实例
int status = client.executeMethod(get);//执行GET请求;status用于接收目标服务器的响应代码,200为正常,302为重定向,404为资源不存在··· ···如果执行以上代码的话,最后的status将被设置为200,也就是人人网的服务器对我的请求做出来正常响应,访问成功。 那么接下来的问题是,该如何查看服务器的响应信息,就像[url=/blog/1070623]HttpClient学习笔记一[/url]中所介绍的,可以通过GetMethod实例的getResponseBody以及getResponseHeaders方法获取目标服务器所作出的响应的头部信息以及消息内容。
代码如下:
Header[] responseHeaders = get.getResponseHeaders();//获取响应头部集合 for (Header header : responseHeaders) {
System.out.println(header);//输出所有的头信息
}
String responseBody = new String(get.getResponseBody(), get.getResponseCharSet());//获取响应的消息体,同时按照响应信息的编码格式构造成字符串,以方便打印查看
System.out.println(responseBody);//输出响应的消息体具体的运行结果(由于消息体的内容较大,以下只列出了响应的头部信息),如下:
[quote]Server: nginx/0.7.67
Date: Sat, 04 Jun 2011 10:41:38 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: _r01_=1; domain=.renren.com; path=/; expires=Tue, 29-May-2012 10:41:38 GMT[/quote]
[color=red](消息体内容可以通过在人人网的“欢迎页面”中通过“查看源代码”来查看响应的内容。)[/color]
通过查看响应头部信息可以获取,人人的服务器名称以及版本号(nginx,0.7.67);返回的消息体的内容类型为HTML文本,字符编码格式为UTF-8格式;同时本次会话所产生的Session内容为:_r01_=1; domain=.renren.com;
这个小例子只是简单的向服务器发送GET请求,并将响应信息打印到控制台中,所实现的功能与Telent基本类似,并无任何实际应用价值。但是可以通过它来熟悉HttpClient的原理,以及开发方法。 下一章将介绍如何通过HttpClient实现登录人人网的操作。
本文介绍了如何使用HttpClient发起GET请求访问人人网,详细解释了设置目标服务器、构造请求、执行请求并解析响应的过程。
1551

被折叠的 条评论
为什么被折叠?



