当前位置: 首页 > news >正文

javaEE 初阶 — 如何构造一个 HTTP 请求

文章目录

  • 使用 form 表单标签构造
    • 1 构造 GET 请求
    • 2 构造 POST 请求
  • 使用 ajax 构造
    • 1 什么是异步
    • 2 代码中如何使用 ajax
  • 使用第三方工具构造
    • 1 postman 工具的安装
    • 2 postman 工具的使用

使用 form 表单标签构造

1 构造 GET 请求


使用 form 表单构造 HTTP 请求,需要用到两个属性。
第一个属性是 action,表示的是提交给哪个服务器;第二个属性是 method,表示的是方法,Get 或者 Post。

<body><form action="https://www.sogou.com" method="get"><input type="text" name="studentName"><!-- 这是一个特殊的按钮,value的值就是按钮里的文本 --><!-- 点击提交就是构造了一个 http 请求提交给了服务器 --><input type="submit" value="提交"></form> 
</body>




点击提交后,使用 fiddler 抓包并观察结果。



上图中的 Get 就是代码中的 method 属性里的值,圈出的部分就是用户在输入框中输入的内容。

https://www.sogou.com 即是 action 属性的值。


此时的请求是只有 首行 部分是可以根据代码更改的,其余部分都是浏览器自主添加的。

2 构造 POST 请求


post 请求与 get 请求的代码是一样的,只是 method 属性里的值要改为 post



body 部分就是用户输入的值,首行部分的 url 就是 action 属性里的值。

对于 form 构造的 post 请求来说,body 里的数据格式就和 query string 是非常相似的,也就是键值对结构。
键和对之间使用 & 来分割,键和值之间使用 = 来分割。


form 标签只能构造 GET 和 POST,无法构造 PUT、DELETE、OPTIONS 等方法的请求。

使用 ajax 构造


这是一种功能更加强大的构造 http 请求的方式,ajax(阿贾克斯),这是通过 js 构造 http 请求的方式。
全称是 Asynchronous JavaScript and XML,a 表示的是 异步的

1 什么是异步


既然有异步,肯定也有同步,下面来举个例子解释。

假如,张三要和相恋多年的网恋对象奔现,他来到火车站等它的女朋友。
同步的等待:在等的过程中,张三就一直死盯着出站口,直到看到他的女朋友为止,然后立马过去迎接她。
异步的等待:张三也可以一边玩手机,一边等待,等到女朋友来了以后主动与张三打招呼。

同步 的意思就是 A 等待 B 时,会一直盯着 B,A 负责关注 B 什么时候就绪。
异步 的意思就是 A 等待 B 时,不会一直盯着 B,B 就绪了之后,主动通知 A。


html 中 通过 ajax 发起请求操作之后,就属于是异步的方式。

当代码执行发送请求操作之后,不必等待服务器响应回来,就可以立即先往下执行。
当服务器的响应回来之后,再有浏览器通知到代码中。

2 代码中如何使用 ajax


jquery 里提供了 ajax api,这是针对原生的 api 的封装,使用起来比较简单。

搜索 jquery cdn ,选择当前域名。



点击之后,在出现的页面选择当前的版本下载。



右键选择复制链接地址后打开





然后再将这个链接复制到 script 标签中的 src 属性中。

 <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>


$.ajax() 中的 $ 在 jQuery 中是一个特殊的全局对象,在 jQuery 中的 api 都是以 $ 的方法的形式引出的。
它只有一个参数,是一个 js 对象,也就是大括号里的键值对。

<body><script src="https://code.jquery.com/jquery-3.6.4.min.js"></script><script>$.ajax({type:'get',url:'https://www.sogou.com?studentName=zhangsan',// 此处的 success 就声明了一个回调函数,就会在服务器响应返回到浏览器的时候触发该回调// 正是此处的 回调 体现了异步success: function(data) {console.log("当服务器返回的响应到达浏览器之后,浏览器触发该回调,通知到代码当中");}});console.log("浏览器立即往下执行代码");</script>
</body>



打开检查者根据,查看控制台可以发现此时报了错。


这是因为搜狗的服务器没有处理我们的请求,因此这里的代码只能看到构造的请求无法获取正确的响应。
就好比在肯基基吃法,你点的却是麦当当,人家当然不会理你。

等到自己实现一个服务器的时候,就可以给自己的服务器发送请求了,这个时候自然就可以处理了。


补充的三点。

第一点



当代码中有多个 请求 的时候,会按照自上而下的顺序执行,但是收到响应与回调函数的执行顺序就不确定了,
因为网络会发生后发先至。


第二点

当其中的一个请求挂了的时候,如果是在发送请求之前就出现异常了,而且异常还是在主线程的话,
此时是无法继续执行后面的代码的。

如果是在发送请求之后,异常出现在响应的回调里,那就是另外的回调线程异常,不会影响主线程。


第三点

和 form 相比,ajax 的更能更加的强大。

  • 支持 put、delete 等方法。
  • ajax 发送的请求可以是灵活设置的 header
  • ajax 发送的请求的 body 也是可以灵活设置的。

使用第三方工具构造


这里使用的是 postman,也是未来公司里经常会使用到的。

而且这还是一个带有对象的软甲——postwoman,更能和 postman 差不多。

1 postman 工具的安装


1、打开搜索引擎,搜索 postman,注意域名,选择官网的。


2、在出现的页面中按需下载


我选择下载 windows 版


3、下载安装好以后,打开并创建一个 工作空间




选择创建好的工作空间打开。




4、创建好一个工作空间后,点击下面的 + 号创建一个标签页。




这里就创建好了一个标签页

2 postman 工具的使用


可以在以下位置设置请求的方法。



总共有以下这么几种方法可以设置。


这个位置写的就是 url





也可以设置它的 headers 以及 body







构造完毕之后,点击发送即可。





以下就是得到的响应


可以选择观察它的 body、cookies、headers 部分。



postman 还有一个比较牛逼的功能:

那就是,可以生成构造请求的代码,方便我们在自己的程序中集成。




相关文章:

javaEE 初阶 — 如何构造一个 HTTP 请求

文章目录使用 form 表单标签构造1 构造 GET 请求2 构造 POST 请求使用 ajax 构造1 什么是异步2 代码中如何使用 ajax使用第三方工具构造1 postman 工具的安装2 postman 工具的使用使用 form 表单标签构造 1 构造 GET 请求 使用 form 表单构造 HTTP 请求&#xff0c;需要用到两…...

CentOS 7下安装PostgreSQL 15版本数据库(图文详细)

文章目录CentOS 7下安装PostgreSQL 15版本数据库(图文详细)1 简介1.1 概述1.2 官网2 PostgreSQL安装2.1 选定版本2.2 安装依赖2.3 执行安装2.4 初始化2.5 配置环境变量2.6 创建数据库2.6.1 进入命令行2.6.2 创建DB2.6.3 设置密码2.7 配置远程2.8 测试链接3 pgAdmin4工具安装3.1…...

代码随想录算法训练营第五十一天 | 309. 最佳买卖股票时机含冷冻期、714. 买卖股票的最佳时机含手续费

309. 最佳买卖股票时机含冷冻期 动规五部曲 1、确定dp数组以及下标的含义 dp[i][j]&#xff0c;第i天状态为j&#xff0c;所剩的最多现金为dp[i][j]。 具体可以区分出如下四个状态&#xff1a; 状态一&#xff1a;持有股票状态&#xff08;今天买入股票&#xff0c;或者是…...

中英文拼写检测纠正开源项目使用入门 word-checker 1.1.0

项目简介 word-checker 本项目用于单词拼写检查。支持英文单词拼写检测&#xff0c;和中文拼写检测。 特性说明 可以迅速判断当前单词是否拼写错误 可以返回最佳匹配结果 可以返回纠正匹配列表&#xff0c;支持指定返回列表的大小 错误提示支持 i18n 支持大小写、全角半角…...

面试如果还不会Netty,看这篇文章就够了

我们去面试的时候&#xff0c;经常被问到netty的题目。我整理了netty的32连问。小伙伴们&#xff0c;收藏起来慢慢看吧。 1. Netty是什么&#xff0c;它的主要特点是什么&#xff1f; Netty是一个高性能、异步事件驱动的网络编程框架&#xff0c;它基于NIO技术实现&#xff0…...

作为大学生,你还不会搭建chatGPT微应用吗?

目录 引言ChatGPT是什么&#xff1f;背景&#xff1a;ChatGPT敢为人先&#xff0c;打破全球僵局示例演示&#xff1a;基于ChatGPT微应用实现的条件及步骤&#xff08;1&#xff09;整体框架&#xff08;2&#xff09;搭建前的准备工作&#xff08;3&#xff09;实际搭建步骤&a…...

Three.js教程:第一个3D场景

推荐&#xff1a;将NSDT场景编辑器加入你3D工具链其他工具系列&#xff1a;NSDT简石数字孪生下面的代码完整展示了通过three.js引擎创建的一个三维场景&#xff0c;在场景中绘制并渲染了一个立方体的效果&#xff0c;为了大家更好的宏观了解three.js引擎&#xff0c; 尽量使用了…...

lua快速入门~在js基础上,知道Lua 和 Js 的不同即可

☺ lua 和 javaScript 差不多的&#xff0c;就是一些语法的细节不同&#xff0c;学过js&#xff0c;再注意一下下面的细节&#xff0c;就能上手了~ 快速入门&#xff0c;可以直接看一下菜鸟教程的lua&#xff1a;https://www.runoob.com/lua/lua-tutorial.html Lua 和 Js 的不同…...

Linux系统【Centos7】更换源详细教程

更换CentOS 7系统的源可以提高网络速度&#xff0c;加快软件升级和安装的速度。以下是详细的更换CentOS 7源实践。 步骤 1&#xff1a;备份原始 Yum.repo 在更换之前&#xff0c;首先要备份原始 Yum.repo 文件&#xff08;一定要记得备份&#xff09;。 bash sudo mv /etc/y…...

金三银四求职季来了!分享几道最常见的app面试题,帮助您更好准备面试求职!

目录&#xff1a;导读 引言 一、Web 端测试和 App 端测试有何不同? 二、App是如何测试的&#xff1f; 三、app闪退的可能原因&#xff1f; 四、给你一个登录页面,你要如何测试&#xff1f; 五、测试过程中遇到app出现crash或者ANR&#xff0c;你会怎么处理&#xff1f; …...

Java集合——List接口学习总结

一、ArrayList实现类 1. 常用方法 增加&#xff1a;add(int index, E element)删除&#xff1a;remove(int index) remove(Object o)修改&#xff1a;set(int index, E element)查看&#xff1a;get(int index)判断&#xff1a;常用遍历方式&#xff1a;//List集合 遍历&…...

低代码(三)低代码平台前端技术组件选型1.0(前端)

目前国内主流的低代码开发平台有&#xff1a;金蝶、用友、宜搭、云程、简道云、明道云、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势&#xff0c;定位也不同&#xff0c;用户可以根据自己需求选择。如果企业想自主可控&#xff…...

代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

代码随想录算法训练营第35天|860.柠檬水找零&#xff0c;406.根据身高重建队列&#xff0c;452. 用最少数量的箭引爆气球860.柠檬水找零406. 根据身高重建队列452. 用最少数量的箭引爆气球860.柠檬水找零 题目链接&#xff1a;860.柠檬水找零&#xff0c;难度&#xff1a;简单…...

C++整人代码,十分朴实但威力无穷,让你对cout怀疑人生,整死你的同学

cout人人皆知 /a 只是让电脑响个铃 直接上个简单的代码 #include<iostream> using namespace std; int main() {while(1)cout<<"\a"; }最后普及一下&#xff1a; 控制符的作用有&#xff1a; setbase(n) 以n进制方式输出(n8,10,16) setfill(ch) 设置…...

【Spring Cloud Alibaba】12.定时任务(xxl-job)

文章目录简介什么是xxl-job调度中心执行器官方架构图相关地址环境要求配置调度中心下载源码目录说明初始化数据库源码方式docker方式测试集群&#xff08;可选&#xff09;配置执行器pom.xmlapplication.propertiesXxlJobExecutorApplication.java执行器组件配置创建定时任务任…...

GDB core dump分析

基本知识 Linux core dump&#xff1a;一般称之为核心转储、内核转储&#xff0c;我们统称为转储文件。是某个时刻某个进程的内存信息映射&#xff0c;即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的&#xff0c;也可以是整个系统的。…...

Leetcode.111 二叉树的最小深度

题目链接 Leetcode.111 二叉树的最小深度 easy 题目描述 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从 根节点 到 最近叶子节点 的 最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,nul…...

【RP-RV1126】SDK编译常用记录

文章目录一、单独编译1.1 单独配置编译kernel1.2 单独编译配置Buildroot1.3 单独编译rkmedia1.3.1 添加自己的rkmedia代码文件荣品的RV1126。一、单独编译 如果执行 build.sh 运行完成后没有在 rockdev/ 目录下生成镜像文件&#xff0c;请执行&#xff1a; ./build.sh firmwa…...

【操作系统复习】第5章 存储器管理

存储器的层次结构 存储层次 ➢ CPU寄存器 ➢ 主存&#xff1a;高速缓存、主存储器、磁盘缓存 ➢ 辅存&#xff1a;固定磁盘、可移动介质 层次越高&#xff0c;访问速度越快&#xff0c;价格也越高&#xff0c;存储容量也最小 寄存器和主存掉电后存储的信息不再存在&a…...

Python人工智能在气象中的实践技术应用

专题一 Python 和科学计算基础 1.1 Python 入门和安装 1.1.1 Python 背景及其在气象中的应用 1.1.2 Anaconda 解释和安装以及 Jupyter 配置1.1.3 Python 基础语法 1.2 科学数据处理基础库 1.2.1 Numpy 库1.2.2 Pandas 库1.2.3 Scipy 库 1.2.4 Matplotlib 和 Cartopy 库 …...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...