request编码方式Content-Type以及params和data传参

编码x-www-form-urlencoded

Content-Type: application/x-www-form-urlencoded 是一种HTTP头部信息,用于指定请求或响应正文的内容类型。

具体来说:

Content-Type 是HTTP头部字段,它指示了随后发送或接收的实体正文的媒体类型。
application/x-www-form-urlencoded 是一种编码格式,通常用于在HTTP请求中发送表单数据。
在这种编码格式中,数据被编码为键值对的形式,并使用key1=value1&key2=value2的格式进行传输。这种格式主要用于在Web应用程序中提交表单数据,常见于HTML表单的默认编码类型。

例如,当你提交一个包含用户名和密码的HTML表单时,浏览器将会使用Content-Type: application/x-www-form-urlencoded来编码这些数据,然后将其发送到服务器。服务器端则可以解析这些编码后的数据,以便处理用户提交的表单信息。

什么是url编码

URL编码(或称百分号编码,Percent-encoding)是一种用于在URL中安全传输数据的方法。在URL中,只有特定的字符可以直接使用,其他字符(如空格、非ASCII字符等)必须经过编码才能安全地传输。

URL编码的基本规则如下:

非安全字符转换:

将URL中不安全的字符转换成特定格式,这些字符包括非ASCII字符、空格、标点符号等。
使用百分号:

使用 % 符号后跟两位十六进制数表示被编码的字符。例如,空格被编码为 %20,@ 被编码为 %40,中文字符被转换成 % 后跟相应的十六进制编码等。
保留字符:

有些字符(如字母、数字、-、_、.、~)在URL中是安全的,不需要编码。
URL编码的目的是确保URL中的数据可以被正确传输和解析,而不会因为包含了特殊字符而导致错误的解析或传输失败。这种编码方法通常在Web开发中常见,尤其是在处理GET请求参数或POST请求的表单数据时。

x-www-form-urlencoded如何编码

application/x-www-form-urlencoded 是一种编码格式,用于将表单数据转换成一个字符串,以便通过HTTP请求发送给服务器。编码过程如下:

对每个键值对进行编码:

对键和值进行URL编码。URL编码会将特殊字符转换成 % 后跟两位十六进制数,例如空格会编码成 %20。
使用 = 分隔键和值:

对于每个键值对,使用 = 将键与值分隔开。
使用 & 分隔多个键值对:

如果有多个键值对,使用 & 将它们连接起来形成一个字符串。
举例来说,如果有以下表单数据:

用户名: john_doe
密码: P@ssw0rd!
在使用 application/x-www-form-urlencoded 编码后,这两个字段的数据将变成:

username=john_doe&password=P%40ssw0rd%21
注意:

用户名 john_doe 没有特殊字符,因此保持不变。
密码 P@ssw0rd! 中的 @ 被编码为 %40,! 被编码为 %21。
这样编码后的字符串可以在HTTP POST请求中的正文部分发送给服务器,服务器端接收到请求后,可以解析这个字符串并处理相应的数据。

参数用data还是params

在这里插入图片描述

get请求用params

在这里插入图片描述

post请求

params 参数添加到url query

在这里插入图片描述
参数被编码到url

data 提交到request body

在这里插入图片描述

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

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

相关文章

Mybatis框架基础知识

Mybatis 1.1什么是Mybatis 1.MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 2.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 3.MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO…

redis的使用场景-热点数据缓存

1.什么是缓存? 把一些经常访问的数据放入缓存中,减少访问数据库的频率,减少数据库的压力,从而提高程序的性能。【内存中存储】 2.缓存的原理 通过上图可以看出程序首先访问缓存,如果缓存中有访问的数据会直接方会给客…

Avalonia中的路由事件

文章目录 一、路由事件的基本概念事件路由机制事件的生命周期二、创建路由事件定义路由事件触发路由事件处理路由事件三、使用路由事件的场景用户输入控件交互动画和样式数据绑定和验证四、路由事件的优缺点优点:缺点:五、总结在Avalonia中,路由事件是处理用户交互和控件之间…

Flutter Geocoding插件使用指南:简化地理编码与逆地理编码

Flutter Geocoding插件使用指南:简化地理编码与逆地理编码 简介 geocoding 是一个Flutter插件,提供了简便的地理编码(将地址转换为经纬度坐标)和逆地理编码(将经纬度坐标转换为地址)功能。它利用了iOS和A…

C#判断代码片段为class还是method

判断代码片段是class还是method: public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string codeSnippet1 "public class MyClass{bool bfalse;public void MyMethod(…

shell-awk文本处理工具

1、awk概述 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作 数据可以来自标准输入也可以是管道或文件 在 linux 上常用的是 gawk,awk …

NSS [NSSRound#18 Basic]easy_rw

NSS [NSSRound#18 Basic]easy_rw 题目描述:弱口令就完事了 入口:/dolphinscheduler 靶机启动需要1分钟。 这题有两种做法。CVE-2023-48796、CVE-2024-23320 先说CVE-2023-48796 Apache DolphinScheduler是一个分布式、易扩展、可视化的工作流任务调度…

MATLAB学习日志DAY22

动态字段名称 访问结构体中的数据的最常用方法是指定要引用的字段的名称。 访问结构体数据的另一种方法是使用动态字段名称。这些名称将字段表示为变量表达式,MATLAB 会在运行时计算这些表达式。此处显示的 点-括号 语法将 expression 作为动态字段名称&#xff1…

【redis】一致性hash算法和hash槽

普通hash取模 直接hash(key)%N , N为机器的数量,但不利于集器扩容或者缩容 一致性hash算法和hash槽 一致性hash算法是在redis 分片中使用,hash槽在redis cluster(集群)中使用 Redis一致性hash:Redis一致性hash是为…

前端获取当前年月日时分秒

getCurrentTime() {//改时间数据格式var currentTime new Date();const formattedDate ${currentTime.getFullYear()}-${this.padZero(currentTime.getMonth() 1)}-${this.padZero(currentTime.getDate())} ${this.padZero(currentTime.getHours())}:${this.padZero(currentTi…

Netdevops入门之Telnetlib语法案例

1、Telnetlib模块: 支持telnet/ssh远程访问的模块很多,常见的有telnetlib、ciscolib、paramiko、netmiko、pexpect,其中telnetlib和ciscolib对应telnet协议,后面3个对应SSH协议。 ①-通过ENSP环境搭建实验环境 ②-基础语法-telnetlib案例1&…

16现代循环神经网络—深度循环与双向循环

目录 1.深度循环神经网络回顾:循环神经网络总结简洁代码实现2.双向循环神经网络隐马尔可夫模型中的动态规划双向模型模型的计算代价及其应用总结代码实现1.深度循环神经网络 回顾:循环神经网络 如何将循环神经网络变深,以获得更多的非线性? 通过添加多个隐藏层的方式来实现…

解决git每次push代码到github都需要输入用户名以及密码

产生原因: 出现以上情况的主要原因在于采用的是 https 方式提交代码, 如果采用的是 ssh 方式只需要在版本库中添加用户的 sha 的key就可以实现提交时无需输入用户名和密码。 解决方法 在终端中使用以下命令删除原先已经建立的http的链接方式&#xff0c…

KCache-go本地缓存,支持本地缓存过期、缓存过期自维护机制。

GitHub - kocor01/kcache: go 本地缓存解决方案,支持本地缓存过期、缓存过期自维护机制。 最近系统并发很高,单接口10W的 QPS,对 redis 压力很大,大量的热KEY导致 redis 分片CPU资源经常告警。计划用 go 本地缓存缓解 redis 的压…

git实践汇总【配置+日常使用+问题解决】

**最初配置步骤:** git config --global user.name "yournemae" git config --global user.email "yourmail" git config -l ssh-keygen -t rsa -C “xxx.xxxx.EXTcccc.com” git config --global ssh.variant ssh $ git clone git仓库路径 git…

洗地机哪家好?四款洗地机好洗地机的品牌推荐

随着“懒人经济”的兴起,洗地机作为家居清洁领域的革新者,正逐步融入越来越多家庭的生活之中。面对市场上繁多的洗地机品牌与型号,消费者往往感到难以抉择:“洗地机哪个牌子最佳?”为了解答这一疑问,本文精…

KubeSphere介绍及一键安装k8s

KubeSphere介绍 官网地址:https://kubesphere.io/zh/ KubeSphere愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成&#xff0…

C++ --> string类模拟实现(附源码)

欢迎来到我的Blog,点击关注哦💕 前言: C中STL扮演着极其重要的角色,学习C重中之重的就是学习STL,虽然string不作为containers的其中一员,但是也是值得学习的le类。下面就进行string的模拟实现 string的模拟…

C++ | Leetcode C++题解之第284题窥视迭代器

题目&#xff1a; 题解&#xff1a; template <class T> class PeekingIterator : public Iterator<T> { public:PeekingIterator(const vector<T>& nums) : Iterator<T>(nums) {flag Iterator<T>::hasNext();if (flag) {nextElement Ite…

docker 的常用命令随笔

sudo docker --help docker build -t demo:v1 systemctl start docker service docker start sudo docker ps -a sudo docker images sudo docker restart xx&#xff08;容器名&#xff09; sudo docker exec -it xxx (容器名) bash sudo docker run -it xxx:xx(镜…