HttpClient学习笔记(二)——通过程序访问人人网

先来分析下程序的流程,按照[url=/blog/1070623]前一章[/url]中所介绍的HttpClient所提供的功能支持,我们首先需要确定的是所要访问的目标服务器的域名(www.renren.com),确定访问方法(首次访问,一般都是GET请求),然后确定访问的路径(/,即根路径),端口为默认端口(80)。那么我们就可以通过以下一段代码向人人网服务器发送默认的“欢迎页面”发送请求了。

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实现登录人人网的操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值