HttpClient别说话,用心看

news2025/7/20 20:52:40

官网:Apache HttpComponents – Apache HttpComponents

常见使用场景:1.爬虫(python相对做爬虫专业,但是java也可以做)  2.与其他应用进行交互时候

注意下,不同的HttpClient的jar包版本,API和包路径有明显不同

先使用JDK原生API请求网页

 将控制台的复制保存为html文件

 双击打开

 request:请求行,请求头,请求体

可以设置请求方式,请求头,等

 依赖

<dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.13</version>
</dependency>

演示使用HttpClient发送get请求,无参

@Test
    public void test1(){
        //可关闭的httpclient客户端,相当于打开一个浏览器
        CloseableHttpClient closeableHttpClient=HttpClients.createDefault();
        String str="https://www.baidu.com";
        //构造HttpGet请求对象
        HttpGet httpGet=new HttpGet(str);
        //声明可关闭响应对象
        CloseableHttpResponse response = null;
        try {
            //可关闭的httpclient客户端对象执行httpGet请求
            response=closeableHttpClient.execute(httpGet);
            //获取响应结果 注意HttpEntity有很多实现类,不仅仅可以作为响应结果,还可以作为请求的参数实体
            //作为响应结果的实现类是DecompressingEntity
            HttpEntity httpEntity=response.getEntity();
            //对HttpEntity操作的工具类
            String toStringResult=EntityUtils.toString(httpEntity, StandardCharsets.UTF_8);
            System.out.println(toStringResult);
            //确保流关闭
            EntityUtils.consume(httpEntity);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(response!=null){
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if(closeableHttpClient!=null){
                    try {
                        closeableHttpClient.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    }

控制台打印结果和原先一样

关于user-agent和referer:

user-agent意思是用户代理:客户端用的什么浏览器

 

假如一直用Httpclient连接某些网页,如果对方知道你是机器所为

比如下面这样

 

 可以在请求头里设置user-agent

比如在请求对象里设置:

//构造HttpGet请求对象
HttpGet httpGet=new HttpGet(str);
httpGet.addHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36");

这样一般可以解决httpClient被认为不是真人行为

另外网站为了保护自己,比如爬对方图片,进行防盗链设置

而Referer是用来,解决网站防盗链

 

每个请求头,都有对应的作用,自己可查看资料

下面演示,一个网站通过浏览器访问后端,后端获取所有请求头,和通过HttpClien发送请求,所得到的请求头有哪些不一样。

该demo一会上传百度云盘

前端就几个表单,做为参数通过get,post,还有文件上传的演示

 

后端接收,并打印所有由浏览器发起请求的所有请求头

随便用户名,密码,这里输入aaa,密码 bbb 后端得到的所有请求头

 然后再实验 账户aaa,密码aaa+bbb

 

 

再来看看用HttpClien发送该请求,后端的结果 

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

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

相关文章

vscode配置自定义代码片段模板

目录1、打开vscode&#xff0c;使用快捷键打开搜索面板2、输入snippets, 点击 代码片段&#xff1a;配置用户代码片段3、模板配置3.1 vue模板配置3.2 全局模板配置1、打开vscode&#xff0c;使用快捷键打开搜索面板 win: Ctrl Shift P mac: command Shift P 2、输入snipp…

圆通山美食城旅游发展总体规划

目 录 目 录 - 1 - 第一章 项目背景及区域概况 - 4 - 一、项目开发背景 - 4 - &#xff08;一&#xff09;项目区位 - 4 - &#xff08;二&#xff09;自然环境条件 - 4 - 1.气候 - 4 - 2.植被 - 5 - &#xff08;三&#xff09;社会经济条件 - 5 - 第二章 SWOT分析 - 6 - 一、…

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

目录 一、MDK-ARM环境介绍及安装 二、STM32Cube简介及安装 STM32CubeMX安装 加载固件库 ​编辑 三、 STM32F0存储器映射 四、STM32启动文件分析 略 五、GPIO的基本概念及寄存器介绍1 1、GPIO接口简介 2、GPIO功能复用 3、GPIO寄存器介绍 GPIO工作原理框图&#xff1a; …

android 签名打包 Invalid keystore format,配置JDK,报错javax.xml.bind.JAXBException

如果AndroidStudio版本高&#xff0c;把Gradle JDK换成更高的版本&#xff0c;就解决了。如下&#xff0c;由1.8换成11&#xff0c;解决了。 这个是全局配置 单独配置项目 File ---> Project Structure---->SDK Location ---> Gradle Srttings jdk配置 MAC 安装JD…

上海亚商投顾:沪指重返3100点 房地产板块掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪大小指数今日走势分化&#xff0c;沪指低开后震荡走高&#xff0c;重返3100点上方&#xff0c;以中字头为首的权重股…

Vue3 按需引入 Element Plus

本文记录博主亲测在 Vite 创建的 Vue3 项目框架中从0开始安装配置按需引入 Element Plus 的步骤 注&#xff1a;以下配置的示例为 Vite 构建的 Vue3 脚手架项目 Element UI 官方指南 安装所需插件 请在项目根目录打开终端分别执行如下安装指令&#xff1a; 1.安装 Element …

实时车载激光雷达感知的点云深度学习

又来卷这个了&#xff0c;此次调查了神经网络中使用的计算表示与其性能特征之间的关系&#xff0c;提出了现代深度神经网络中用于3D点云处理的LiDAR点云表示的新计算分类法。使用这种分类法&#xff0c;对不同的方法家族进行结构化分析&#xff0c;论文揭示了在计算效率、内存需…

Resnet的在指静脉识别应用与改进

一、《基于改进残差网络的指静脉识别算法》_易芮 2020.5.20 由于指静脉具有区分性的特征在于其细节特征,为了减少网络训练过程中的信息丢失,在网络中采用改进的大卷积层以及BottleNeck模块. ResNet网络模型采用残差结构和跳跃连接的方式缓解了随着网络的加深而…

web前端-javascript-相等运算符(说明,== 相等运算, != 不相等运算,=== 全等运算,!== 不全等 运算)

文章目录相等运算符1. 说明2. 相等运算2.1. 当使用来比较两个值时&#xff0c;如果值的类型不同&#xff0c;则会自动进行类型转换&#xff0c;将其转换为相同的类型然后再比较2.2. undefined 衍生自 null2.3. NaN 不和任何值相等&#xff0c;包括他本身3. ! 不相等运算4. 全…

【无百度智能云与实体经济“双向奔赴”: 一场1+1>2的双赢 标题】

实体经济&#xff0c;已经成为检验科技企业潜力的试金石。 在最近的财报季中&#xff0c;各家大厂的财报里“实体经济”都是关键字眼&#xff0c;已经成为各家心照不宣的共同目的地。 当然&#xff0c;条条大路通罗马。每一家的战略思路和打法都不一样。11月22日&#xff0c;…

数据结构题目收录(二十四)

1、在将序列(6,1,5,9,8,4,7)建成大根堆时&#xff0c;正确的序列变化过程是&#xff08;&#xff09;。 A&#xff1a;6,1,7,9,8,4,5->6,9,7,1,8,4,5->9,6,7,1,8,4,5->9,8,7,1,6,4,5B&#xff1a;6,9,5,1,8,4,7->6,9,7,1,8,4,5->9,6,7,1,8,4,5->9,8,7,1,6,4…

【TUN模式】对QQ或者微信域名相关的网站访问非常慢、图片加载不出来、网页空白的解决方案

一、问题背景 最近在电脑上登录微信时&#xff0c;或者浏览微信公众号的文章时&#xff0c;经常出现卡顿得出不来图片的情况&#xff0c;即使出来了也是排版异常。 二、研究现状&#xff08;哈哈哈哈科研人的写作习惯&#xff1f;&#xff09; 目前网上有些大咖对这个问…

qt 实现PDF阅读器

1、前言 查阅资料可发现&#xff0c;网上的几种pdf阅读器的实现&#xff0c;几乎大多依赖的第三方库&#xff0c;这里就不做介绍了。 qt 自带的关于pdf的显示&#xff1a;pdfwriter、printpreviewwidget&#xff0c;分别为创建pdf 和 打印预览pdf。由此&#xff0c;后者似乎满足…

快速上手Python命令行模块Click

关于Click&#xff1f; 说下 Click 模块是干啥的,简单说&#xff0c;它就是把我们的 Python 脚本的一些函数&#xff0c;通过 添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后执行。听不懂也没关系&#xff0c;我们会一步一步来&#x…

【OpenGL开发】VS2017+nuget配置OpenGL开发环境

文章目录1、简介1.1 先决条件1.2 查找并安装包1.3 卸载软件包1.4 更新包1.5 管理解决方案的包1.6 “合并”选项卡2、nuget配置程序源2.1 在线源2.2 本地源3、nuget安装库3.1 nuget安装nupengl.core&#xff08;C&#xff09;3.2 nuget安装Giawa.OpenGL&#xff08;C#&#xff0…

听音乐赚钱App,每天听歌收益5美金,保姆级教学,被动收入人人可做

文章目录调研操作变现链接调研 今天分享的就是一个无门槛挂机项目。不需要科学上网,只要听歌就能赚钱。 首先我们需要先认识平台,这个平台叫做current。 是一个听音乐赚积分的平台,它这个赚钱逻辑也非常简单,在平台听歌就可以获取积分,不过最后是可以用积分兑换美金的。官方的说…

索辰科技在科创板过会:拟募资金额有所下调,上半年亏损4000万元

11月24日&#xff0c;上海证券交易所科创板披露的信息显示&#xff0c;上海索辰信息科技股份有限公司&#xff08;下称“索辰科技”&#xff09;获得上市委会议通过。据贝多财经了解&#xff0c;索辰科技于2022年6月29日递交招股书&#xff0c;准备在科创板上市。 据了解&#…

Word处理控件Aspose.Words功能演示:在 Python 中将 Word 文档转换为 PNG、JPEG 或 BMP

MS Word 文件到图像格式的转换让您可以将文档的页面嵌入到您的 Web 或桌面应用程序中。为了在 Python 应用程序中执行此转换&#xff0c;本文介绍了如何使用 Python 将 Word DOCX或DOC文件转换为PNG、JPEG或BMP图像。此外&#xff0c;您将学习如何使用不同的选项控制 Word 到图…

MySQL一致性读实现原理

一致性读实现原理前言MySQL中的事务事务的ACID事务的并发问题事务隔离级别InnoDB并发控制MVCC特性MVCC快照隔离级别与快照REPEATABLE READREAD COMMITTEDUndo回滚段一致性读总结前言 现在&#xff0c;主流关系型数据库产品基本都实现了MVCC的特性&#xff0c;快照在MVCC中起着…

Eureka(注册中心)

1.SpringCloud快速开发入门 1.1 搭建和配置一个服务提供者 我们知道&#xff0c;SpringCloud构建微服务是基于SpringBoot开发的。 1、 创建一个SpringBoot工程&#xff08;SpringBoot的Web工程&#xff09;&#xff0c;并且添加SpringBoot的相关依赖&#xff1b; 2、 创建服…