(转)HttpURLConnection与 HttpClient 区别_httpurlconnection和httpclient_PacosonSWJTU的博客-程序员宅基地

技术标签: java  java网络编程  服务器  springboot  开发语言  

转自:

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 ;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/PacosonSWJTU/article/details/121121238

智能推荐

MITK通用插件(十)The MatchPoint Algorithm Control View-程序员宅基地

目录简述使用选项卡简述这个插件为用户提供了一种注册数据(图像或点集)的方式,以建立一个空间关联/映射(在数据存储中存储为注册对象)。用户必须选择注册算法。使用样例截图使用该插件之前,需要加载注册算法和移动数据以及目标数据必须选择。支持的数据类型取决于所选择的算法。基本上这个插件支持图像和点集的注册。移动数据注册到目标数据上。因此,在图像的情况下,结果是一个映射的输入图像,其几何形状(视场、方向、间距)由目标图像定义。所有应该用于注册的输入都是通过如下图所示.

BZOJ2243 [SDOI2011]染色-程序员宅基地

恩恩树链剖分一下于是用线段树维护每一个子段的颜色信息 --不同颜色段数,因为要合并所以还要维护每一段的左右端点颜色信息然后就没有然后了2333尝试着写了个指针版的。。。感觉还可以啊(话说,是不是写多棵线段树会快啊?) 1 /************************************************************** 2 ...

iis配置多版本php,IIS中fastcgi安装多版本php配置方法-Go语言中文社区-程序员宅基地

下载不同的php版本两个,例如本:php-5.2.17-nts-Win32-VC9-x86.zipphp-5.4.36-nts-Win32-VC9-x86.zip(朝夕网只下载了两个版本,如果你还有更多,类似操作就行)分别解压到以下目录,目录增加iis_wpg读权限c:php-5.2.17c:php-5.4.36分别配置各自的php.ini复制php.ini-production改成php.ini..._iis 多版本php

vim插件管理器:Vundle的安装_vim 包管理器-程序员宅基地

https://blog.csdn.net/zhangpower1993/article/details/52184581安装:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim编辑:vim ~/.vimrcset nocompatible " ..._vim 包管理器

maxout简单理解_mnn maxout-程序员宅基地

maxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。  从论文中可以看出,maxout其实一种激发函数形式。通常情况下,如果激发函数采用sigmoid函数的话,在前向传播过程中,隐含层节点的输出表达式为:     其_mnn maxout

Android-WebKit for android-程序员宅基地

WebKit 分析–for android一、WebKit简介WebKit是一个开源的浏览器网页排版引擎,包含WebCore排版引擎和JSCore引擎。WebCore和JSCore引擎来自于KDE项目的KHTML和KJS开源项目。Android平台的Web引擎框架采用了WebKit项目中的WebCore和JSCore部分,上层由Java语言封装,并且作为API提供给Androi

随便推点

T_SQL 遍历 XML-程序员宅基地

declare @data XML;set @data='<bookstore><book category="COOKING" isbn="3434343" > <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</aut..._sql 定义 varible 遍历

7、Python的基本数据类型及内置方法(内存中的数据的存储操作)_python基本数据类型的存储-程序员宅基地

文章目录一、补充知识点1.1 进制1.2 队列 和 堆栈 都是存值取值的二、基本数据类型及内置方法2.1 数字2.2 字符串2.3 列表 list2.3 元组 tuple (就是“不可变的列表”)2.4 字典 dict2.5 集合一、补充知识点1.1 进制名字(参数):触发一个功能的运行,工厂,会有返回,也可以无返回进制转换(十进制–》二进制):bin(10) # 0b1010 十进制转化为二进制, 0b开头是二进制进制转换(十进制–》八进制):oct(10) # 0o13 十进制转化_python基本数据类型的存储

成熟盈利模式:短信市场分析案例 _短信业务如何盈利-程序员宅基地

成熟盈利模式:短信市场分析案例 -------------------------------------------------------------------------------- 发布时间:20050729  点击数:2022 作者:李健 转载出处:《中国经营报》  录入:web   短信不仅给中国移动带来了丰厚的利润,而且还救活了岌岌可危的互联网产业。从2000年11月中_短信业务如何盈利

74HC595驱动程序_74hc595驱动代码-程序员宅基地

#include<reg52.h>#include<intrins.h> sbit si=P2^2;//数据线74hc595的14管脚sbit rck=P2^3;//输出储存器锁存时钟线 74hc595的12管脚sbit sck=P2^4;//数据输入时钟线 74hc595的11管脚sbit sclr=P2^5; /..._74hc595驱动代码

xrandr 自定义分辨率_ujn20161222的博客-程序员宅基地

xrandr - How do I set a custom resolution? - Ask Ubuntu

bootstrap-datetimepicker 设置初始值-程序员宅基地

1,初始化控件 $("#datetimeStart").datetimepicker({ format: "yyyy-mm-dd hh:00:00", startDate: new Date(), autoclose: true, todayBtn: true, language: 'zh-CN', ..._datetimepicker 设置初始值