curl在window及linux中的使用及区别

目录

内容介绍

测试一(GET,application/json)

  • 归纳

测试二(GET,x-www-form-urlencoded)

  • 归纳

测试三(POST,FORM-DATA)

  • 归纳

测试四(POST,x-www-form-urlencoded)

  • 归纳

总结

  • 汇总
  • 学会了解不同
  • 服务端代码

内容介绍

注:通过实际测试,摆出在linux环境与windows环境下系统使用curl的不同之处
注:测试工具:ApiFox、cmd命令行、git bash命令行、idea spring boot web服务端
注:测试使用的curl可在这里生成
在这里插入图片描述


注:测试url。包含请求头、请求体、请求类型、请求url、换行符

一、测试一(GET,application/json)

测试内容:GET请求, json请求体, 带请求头

# linux 环境使用
curl --location --request GET 'http://localhost:8090/test/curltest/getRequest' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{"name":"i am aliens"
}'
# windows环境使用
curl --location --request GET "http://localhost:8090/test/curltest/getRequest" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Content-Type: application/json" ^
--data-raw "{\"name\":\"i am aliens\"}"

注:请求后返回值
git bash
在这里插入图片描述
cmd
在这里插入图片描述

归纳

注:字符的处理

key word举例windowslinux
urlhttp://localhost:8090/test/curltest/getRequest使用了双引号包裹使用了单引号包裹
换行符^反斜杠(\)上标(^)
请求体data-raw除包裹字符串使用双引号外,json中key和value的双引号还需要使用反斜杠进行转义包裹字符串使用单引号, json内部双引号不用处理

二、测试二(GET,x-www-form-urlencoded)

测试内容:GET请求,form请求参数(Content-Type: x-www-form-urlencoded), 带请求头

# linux环境
curl --location --request GET "http://localhost:8090/test/curltest/getRequest2?who=aliens" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Content-Type: x-www-form-urlencoded"
# windows环境
curl --location --request GET 'http://localhost:8090/test/curltest/getRequest2?who=aliens' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: x-www-form-urlencoded'

git bash
在这里插入图片描述
cmd在这里插入图片描述

归纳

注:字符的处理

key word举例windowslinux
url?paran=valuehttp://localhost:8090/test/curltest/getRequest2?who=aliens没有区别没有区别
urlhttp://localhost:8090/test/curltest/getRequest使用了双引号包裹使用了单引号包裹
换行符^反斜杠(\)上标(^)

三、测试三(POST,FORM-DATA)

测试内容:POST请求,form请求参数(Content-Type: form-data), 带请求头

# linux环境
curl --location --request POST 'http://localhost:8090/test/curltest/getRequest3' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--form 'who="aliens"'
# windows环境
curl --location --request POST "http://localhost:8090/test/curltest/getRequest3" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--form "who=\"aliens\""

git bash
在这里插入图片描述

cmd
在这里插入图片描述

归纳

注:字符的处理

key word举例windowslinux
urlhttp://localhost:8090/test/curltest/getRequest使用了双引号包裹使用了单引号包裹
换行符^反斜杠(\)上标(^)
请求体form-data除包裹字符串使用双引号外,key和value的双引号还需要使用反斜杠进行转义包裹字符串使用单引号, key值不做处理, value值使用双引号

四、测试四(POST,x-www-form-urlencoded)

测试内容:POST请求,form请求参数(Content-Type: form-data), 带请求头

# linux环境
curl --location --request POST 'http://localhost:8090/test/curltest/getRequest3' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--data-urlencode 'who=aliens'
# windows环境
curl --location --request POST "http://localhost:8090/test/curltest/getRequest3" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--data-urlencode "who=aliens"

git bash
在这里插入图片描述cmd
在这里插入图片描述

归纳

注:字符的处理

key word举例windowslinux
urlhttp://localhost:8090/test/curltest/getRequest使用了双引号包裹使用了单引号包裹
换行符^反斜杠(\)上标(^)
请求体x-www-form-urlencoded没有区别没有区别

总结

1. 汇总
请求类型key word举例windowslinux
*urlhttp://localhost:8090/test/curltest/getRequest使用了双引号包裹使用了单引号包裹
*换行符^反斜杠(\)上标(^)
*请求体data-raw(json)除包裹字符串使用双引号外,json中key和value的双引号还需要使用反斜杠进行转义包裹字符串使用单引号, json内部双引号不用处理
GET请求体url?paran=value(url上的参数)没有区别没有区别
POST请求体x-www-form-urlencoded(编码的参数)没有区别没有区别
2. 学会了解不同

注:如果使用apifox生成业务代码curl命令行的方式可以解决在不同系统之间使用的目的。但为了方便我们自己在修改参数时可以灵活运用不同系统之间的特性,了解他们之间的区别也很重要。知己知彼,百用不怠

3. 服务端代码
package com.home.api;import com.home.entity.RequestDTO;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.List;@RestController
@RequestMapping("curltest")
public class CurlTestController {@GetMapping("getRequest")public ResponseEntity getRequest(HttpServletRequest request, @RequestBody RequestDTO requestDTO, @RequestHeader("User-Agent") String userAgent) throws InterruptedException {System.out.println("requestDTO: "+requestDTO.toString());System.out.println("userAgent: "+userAgent);return ResponseEntity.success();}@GetMapping("getRequest2")public ResponseEntity getRequest2(HttpServletRequest request, @RequestHeader("User-Agent") String userAgent, @RequestParam("who") String who) throws InterruptedException {System.out.println("userAgent: "+userAgent);System.out.println("who: "+who);return ResponseEntity.success();}/** form-data, x-www-form-urlencoded都可以使用 */@PostMapping("getRequest3")public ResponseEntity getRequest3(HttpServletRequest request, @RequestHeader("User-Agent") String userAgent, @RequestParam("who") String who) throws InterruptedException {System.out.println("userAgent: "+userAgent);System.out.println("who: "+who);return ResponseEntity.success();}
}

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

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

相关文章

yolov5交互式界面 V5.0-6.0版本通用界面-yolo-pyqt-gui(通用界面制作+代码)

往期热门博客项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 yolo GUI OYQT界面 YOLOv5…

pycharm连接服务器运行时找不到文件或目录

选择你要修改的python interpreter 进入下图界面,默认选择的是Deployment configuration,需要将其改成SSH。 再将上图python interpreter path和pycharm helpers path 配置成服务器上相应地址即可。 over

校园跑腿小程序源码系统多校园版 跑腿达人入驻接单 带完整的安装代码包以及系统部署教程

在数字化时代的浪潮中,校园生活的便捷性和高效性成为了广大师生的共同追求。为了满足这一需求,罗峰给大家分享一款适用于多校园的跑腿小程序源码系统——校园跑腿小程序源码系统多校园版。该系统不仅提供了完整的安装代码包,还附带了详尽的系…

# 14 React 自定义Hook详解

自定义 Hook 是一个函数,其名称以 “use” 开头,函数内部可以调用其他 Hook。自定义 Hook 是一个函数,其名称以 “use” 开头,函数内部可以调用其他 Hook。下面是几个自定义 Hook 的例子以及需要注意的知识: 1. 使用状…

用指针处理链表(一)

1链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。我们知道,用数组存放数据时,必须事先定义固定的长度(即元素个数)。比如,有的班级有100人,而有的班只有30人,如果要用同一个数组先后存放不同班级的学生数据,则必须定义长度…

为wordpress特定分类目录下的内容添加自定义字段

在WordPress中,您可以使用自定义字段(Custom Fields)或称为元数据(Meta Data)来为特定分类目录下的内容添加额外的信息。自定义字段可以附加到文章、页面、用户和其他对象上。以下是一个逐步指南,介绍如何为特定分类目录下的内容添加自定义字段&#xff…

男青年穿什么裤子好看?适合男生穿的百搭神裤

这几年衣服的款式可谓是越来越多了,很多男生在选裤子的时候都发现虽然款式越来越多,但现在市面上的裤子质量参差不齐,导致难以选择。而且还有很多商家为了利润采用低廉的材料,从而上身舒适性极差。 那么今天就给大家详细介绍几点…

web3 token 如何理解

"Web3 Token"是指建立在Web3技术堆栈上的数字令牌。为了更好地理解这个概念,让我们逐步解释: Web3:指的是下一代互联网(Web3.0),它是基于区块链技术的去中心化网络。Web3的核心理念是去中心化、安…

cpu自动加速@TDP@睿频TurboBoost@PB精准频率提升技术

文章目录 自动加速技术Intel超频睿频工作原理:特点超频技术对比 AMDPBO PB2 TDP定义与意义TDP与实际功耗TDP的应用TDP的发展与挑战 Intel相关指标PL1 (Power Limit 1)PL2 (Power Limit 2)PL1 与 PL2 的关系与应用场景小结查看 AMD相关指标主板厂商与用户干预 高端型号的加速技术…

3D软件坐标系速查

本文介绍不同3D软件的世界坐标系之间的差异及其工作原理。 基本上,游戏引擎和3D软件包最重要的问题是根据软件的坐标轴系统创建资产,正确缩放它们并根据要完成的工作设置枢轴系统。 坐标系正确性的定义可能会根据模型导入的游戏引擎或 3D 软件而变化。…

开放式耳机性价比高的品牌有哪些呢?五大高性价比选购清单

不入耳开放式蓝牙耳机近两年开始火起来了,因为它佩戴的舒适性和安全性两方面受到了很多人的关注。开放式的设计,就算不放进耳朵里也能听歌,同时加上它独特的空气传导的传声途径,整体的音质还是很不错的。不压耳,不涨耳…

申请发明专利的基本条件是什么?发明专利需要什么资料?

发明专利申请的基本条件是什么?发明专利需要的资料有啥?发明专利大家真的了,那么今天的这2个问题我们就一起来看看吧。 发明专利申请的基本条件是什么? 在进行技术开发、新产品研制过程中取得的成果,因其技术水平较高&#xff0…

2016年认证杯SPSSPRO杯数学建模D题(第二阶段)NBA是否有必要设立四分线全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 D题 NBA是否有必要设立四分线 原题再现: NBA 联盟从 1946 年成立到今天,一路上经历过无数次规则上的变迁。有顺应民意、皆大欢喜的,比如 1973 年在技术统计中增加了抢断和盖帽数据;有应运而生、力…

Filter PWM和普通PWM区别

Filter PWM和普通PWM是两种不同的脉冲宽度调制(PWM)技术。它们的区别主要在于滤波器的使用和输出信号的特性。 普通PWM是一种基本的PWM技术,它通过改变信号的脉冲宽度来控制输出电平的平均值。普通PWM信号的频率通常较高,可以达到…

通过MobaXterm工具远程连接可视化服务器桌面并操控

目录 一、MobaXterm工具二、MobaXterm工具可视化服务器目录三、MobaXterm工具可视化服务器桌面 一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具,可以用于连接到各种类型的服务器,包括Linux、Windows和MacOS。它支持多种协议,包括…

【C语言】linux内核pci_enable_device函数和_PCI_NOP宏

pci_enable_device 一、注释 static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags) {struct pci_dev *bridge;int err;int i, bars 0;/** 此时电源状态可能是未知的,可能是由于新启动或者设备移除调用。* 因此获取当前的电源状态&…

【Java】哈希表

文章目录 一、概念二、哈希冲突2.1概念2.2设计合理的哈希函数-避免冲突2.3调节负载因子-避免冲突2.4闭散列-冲突解决(了解)2.5开散列/哈希桶-冲突解决(重点掌握) 三、代码实现3.1成员变量及方法的设定3.2插入3.3重新哈希3.4 获取到…

YT8531调试记录

总结 还是从设备树,mac驱动,mac驱动对mdio总线的注册,phy驱动 ,phy的datasheet,cpu的datasheet 几个方面来看来看 0.确认供电,以及phy的地址(一般会有多个地址,根据相关引脚电平可配置) 1.确…

第二十九天-Flask框架web开发

目录 1.介绍 2.安装 虚拟环境安装 3.使用 1.第一个Flask程序 2.MTV模式 3.启动选项以及调试 启动 调试模式 Pycharm启动配置 4.Flask的扩展 5.url配置和路由 6.响应上下文对象 ​编辑7.请求保报文常用参数 8.响应报文 9.重定向等内部视图 1.介绍 网址&#xff1…

BEVFormer v2论文阅读

摘要 本文工作 提出了一种具有透视监督(perspective supervision)的新型鸟瞰(BEV)检测器,该检测器收敛速度更快,更适合现代图像骨干。现有的最先进的BEV检测器通常与VovNet等特定深度预训练的主干相连,阻碍了蓬勃发展…