标准java http和 apach httpclient总结
http除了标准的java接口外,还有apach开源项目也提供了http的api,简称httpclient
这种http的使用更为方便简单,httpclient封装了http的请求、身份验证和连接管理等特性,它主要实现了abstractHttpClient、DefaultHttpClient和AndroidHttpClient
androidHttpClient是使用android原生的代码实现的,不能直接创建,只能通过newInstance获取
DefaultHttpClient是使用apache开源项目实现的
android相对于default做了一些改进,使其更适应用android等嵌入式设备,使用方法差不多
1. 关掉了过期检查
2. 可以设置连接超时参数和读取数据超时
3. 关掉了重定向
4. 如果服务器支持可以使用gzip压缩方式传递数据
httpclient客服端连接服务器主要分为以下几个步骤:
1. 创建HttpClient
2. 创建对应的请求 Get -- HttpGet Post -- HttpPost
3. 设置请求参数,Get使用字符串添加到URL后面 POST则需要使用setEntity(HttpEntity)设置参数
4. 执行连接服务器 httpClient.execute(HttpGet/HttpPost) 发送请求,并返回HttpResonse
5. 调用HttpResponse对应的流方法,进行数据的读取或写入
标准的Java http api和httpClient的区别:
1. 标准java的使用原始的api,运行消耗内存小,减少网络使用,运行速度快和节省电池,更适合在移动设备上使用
2. apache项目的httpclient使用方便灵活,而且功能稳定,少有bug;
并且android 2.2以前标准的java http有一个bug,响应输入流inputStream.close()的时候将会阻碍连接池的连接,会出现异常,不过2.3以后就修改了

浙公网安备 33010602011771号