(转)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 ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器

最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5jQuery等流行的前端技术做一个简单的Web站点,让…

深入分析Java中的length和length()

转载自 深入分析Java中的length和length()在开始正文之前,请你快速回答如下问题:在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度?这个问题我问过不同水平…

归并排序示例

public class MergeSortMain {public static void main(String[] args) {int[] arr {5, 4, 6, 2, 3, 7, 9, 1, 8};sort(arr);print(arr);}static void sort(int[] arr) {sort(arr, 0, arr.length - 1);}/*** param arr 数组* param leftBound 左边界* param rightBoun…

windows监控txt写入_Windows的bug们

2020/9/26○Doriawinterwindows的锁屏界面我很喜欢,这个壁纸自动切换的模块叫windows聚焦,然而我某天开机时发现图片消失,变味了蓝色背景,如图:因为我的已经修好了,所以在网上找了一张一样的图,…

internet地址java表示

【README】 本文主要总结 internet地址相关知识,及相关的 java 类 ; 0)ip地址是什么 连接到internet的设备称为节点,计算机节点称为主机(host),每个节点至少由一个唯一的数(或数字…

微软也加入FB开放计算项目 发布交换机操作系统

微软3月10日宣布了一则震动技术业界的消息,它正式发布了基于Debian Linux的网络交换机操作系统。这款名为“SONiC”(Software for Open Networking in the Cloud)的软件以前仅供微软内部使用,主要运行在网络交换机上。 这条消息对…

Docker-Desktop储存路径更改

前言 Docker是一个非常好用的容器引擎, 使我们部署环境速度大幅度提升。但是windows版本的docker-desktop默认安装路径是C盘,这时候就有一个非常让人头疼的问题 -【C盘储存空间严重不足】。下面主要记录一下怎么解决这一个问题~ 原缓存路径 C:\Users${用户文件}\A…

深入解析String中的intern

转载自 深入解析String中的intern引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统…

URLConnection-URL连接

【README】 本文介绍了 URLConnection java类,通过 URLConnection 如何获取网络资源;本文还梳理了涉及网络编程的java类的进化过程;从 URL -> URLConnection -> HttpURLConnection 或 HttpClient ; URL与URI的介绍, refer2…

excel趋势线公式导出_如何用Excel进行预测分析?

【面试题】一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。请模拟出来,每天如果日新增6万用户,那么第30天,它的日活数会达到多少?请使用Excel进行分析。【分析思路】第1日(次日)留存用户数第1日新增用…

ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)

现在ASP.NET Core还在不断成长、更新中,说不定到了明天又换了个模样,就如同一个小孩,从蹒跚学步,到奔向未来。 所以我们可以相应的去理解更新中所发生的变化,包容它、呵护它,而不是盲目的指责与批评&#x…

记录一下SpringCloud-Gateway使用lb动态路由遇到的坑

前言 前一段时间,学习springcloud-alibaba时候,学习到gateway组件与nacos注册中西一起使用时遇到了一个问题在此记录一下,避免以后遇到又做无用功。 问题 通过gateway配置路由时,uri参数使用lb://xxxx无法映射到对应的服务地址…

Java程序创建Kafka Topic,以及数据生产消费,常用的命令

转自: Java程序创建Kafka Topic,以及数据生产消费,常用的命令_Zyy_z_的博客-CSDN博客_java kafka创建topicKafka简介: Kafka是一个分布式发布——订阅消息传递系统。Kafka快速、可扩展且耐用。它保留主题中的消息源。生产者将数据…

c++ 凸包 分治算法_三维凸包

缘起众所周知,二维凸包可以使用 Graham 扫描 内解决.所以本文来学习一下三维空间中凸包的一种直观算法——增量算法(increment algorithm)分析有一条叫 Willy 的苹果虫一直快乐的居住在一个苹果中,直到有一天有一只仓鼠想吃这个苹果,Willy 自…

深度分析Java的ClassLoader机制(源码级别)

转载自 深度分析Java的ClassLoader机制(源码级别)Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时…

.NET跨平台之Sake和KoreBuild

最近在了解Asp.net Core 1.0(也可称为Asp.net5\Asp.net vNext)的跨平台,发现了两个新的新东西:Sake和KoreBuild(或者已经出了很久)。 通过国内某度查询资料大部分都是复制黏贴来的,几乎没有详细的介绍。 只…

Ubuntu系统安装准备

前言 最初学习程序开发时,大多数都会教linux系统的基础用法,但是很少以linux为操作系统开发程序,因为windows系统的简单便利为人的提供优秀的操作基础,成为首选系统。 突然心血来找想使用linux操作系统作基础进行程序代码开发。 …

(转)Kafka 消费者 Java 实现

转自: Kafka 消费者 Java 实现 - 简书应用程序使用 KafkaConsumer向 Kafka 订阅 Topic 接收消息,首先理解 Kafka 中消费者(consumer)和消费者组(consumer group...https://www.jianshu.com/p/1f9e18e926f6据原文作者&…

docker export_docker使用简介

一 docker服务端和客户端declare -x DOCKER_HOST"192.168.2.162export DOCKER_HOST192.168.2.162docker -H tcp://192.168.2.162:2375 images二 docker daemon配置cat /etc/sysconfig/dockerOPTIONS--selinux-enabled --log-driverjournald --signature-verificationfalse…

深度解析单例与序列化之间的爱恨情仇

转载自 深度解析单例与序列化之间的爱恨情仇本文将通过实例阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏。单例模式,是设计模式中最简单的一种。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访…