(转)HttpURLConnection与 HttpClient 区别

Posted PacosonSWJTU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)HttpURLConnection与 HttpClient 区别相关的知识,希望对你有一定的参考价值。

转自:

HttpURLConnection与 HttpClient 区别/性能测试对比 - 尚码园HttpURLConnection与HttpClient随笔   目前在工做中遇到的须要各类对接接口的工做,须要用到HTTP的知识,工做完成后想要作一些笔记,原本知识打算把本身写的代码粘贴上来就行了,https://www.shangmayuan.com/a/6ee68d2d1c9b4606bf618dfd.html

【README】

本文总结了 HttpURLConnection, HttpClient的区别;


【1】HttpURLConnection(jdk自带)

在JDK的java.net包中已经提供了访问HTTP协议的基本功能的类:HttpURLConnection。

HttpURLConnection是Java的标准类,它继承自URLConnection,可用于向指定网站发送GET请求、POST请求。它在URLConnection的基础上提供了以下便捷的方法:

int getResponseCode(); // 获取服务器的响应代码。
String getResponseMessage(); // 获取服务器的响应消息。
String getResponseMethod(); // 获取发送请求的方法。
void setRequestMethod(String method); // 设置发送请求的方法。

【2】HttpClient 简介(apache开源)

1)在通常状况下,若是只是须要向Web站点的某个简单页面提交请求并获取服务器响应,HttpURLConnection彻底能够胜任

HttpURLConnection缺点:但在绝大部分状况下,Web站点的网页可能没这么简单,这些页面并非经过一个简单的URL就可访问的,可能须要用户登陆并且具备相应的权限才可访问该页面。在这种状况下,就须要涉及Session、Cookie的处理了,若是打算使用HttpURLConnection来处理这些细节,固然也是可能实现的,只是处理起来难度就大了

2)HttpClient: 为了更好地处理向Web站点请求,包括处理Session、Cookie等细节问题,Apache开源组织提供了一个HttpClient项目,看它的名称就知道,它是一个简单的HTTP客户端(并非浏览器),能够用于发送HTTP请求,接收HTTP响应。但不会缓存服务器的响应,不能执行HTML页面中嵌入的javascript代码;也不会对页面内容进行任何解析、处理。

简单来讲,HttpClient就是一个加强版的HttpURLConnection,HttpURLConnection能够作的事情HttpClient所有能够作;HttpURLConnection没有提供的有些功能,HttpClient也提供了,但它只是关注于如何发送请求、接收响应,以及管理HTTP链接。


【3】小结

httpClient是个开源框架,封装了访问http的请求头,参数,内容体,响应等等,
HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便

性能测试结果:

HttpURLConnection 优于 HttpClient ;

以上是关于(转)HttpURLConnection与 HttpClient 区别的主要内容,如果未能解决你的问题,请参考以下文章

HttpUrlConnection使用详解--转AAAAA

HttpURLConnection responseCode 405 方法不允许错误

android中的HttpUrlConnection的使用之四

转Java模拟http请求,调用外部api接口:HttpURLConnection和HttpClient的区别

OkHttp使用全解析(转)。

本地图片与网络图片转base64