HTTP Client 编写

手头生正好有一个HTTP Client例子,使用socket 连接。代码如下:

运行上述代码,返回如下:

IP Address is : 211.100.26.77
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.7.65
Date: Fri, 02 Jul 2010 14:27:19 GMT
Content-Type: text/html
Content-Length: 161
Connection: keep-alive
Location: http://www.csdn.net/

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/0.7.65</center>
</body>
</html>

 

这个代码基本上是一个最原始的http clinet,模拟了http协议,比如协议头。但是这段代码有几个问题:

首先不能解析动态网页,如aspx等(不知道为什么,请知道的朋友告知,谢谢!)。

其次,服务器返回的是一个二进制byte[],你需要自己解析得到的你需要的内容。

因为我需要拿到的是一个二进制的png图片文件,并不关心头信息,如果能有一个library直接提供解析功能就好了。

 

Apache common HttpClient 库提供了很好的封装,因此非常简单的几行代码(不及异常处理)就可以了。

但是这个代码有时会给出如下警告:

Jul 2, 2010 11:42:34 AM org.apache.commons.httpclient.HttpMethodBase getResponseBody
WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.

 

按照提示应该使用getResponseBodyAsStream。其中最后还有一个将byte[]生成图片并显示,并且判断图片大小后,重新设置图片大小的。下面是我的完整实例:

参考:

http://hc.apache.org/httpclient-3.x/tutorial.html

http://hc.apache.org/httpclient-3.x/apidocs/index.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值