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

curl 使用发送POST GET请求 HEADER设置

curl 使用发送POST GET请求 HEADER设置

文章目录

  • Get请求
  • POST请求
    • 1. application/x-www-form-urlencoded
    • 2. Multipart/form-data
    • 3. application/json
    • 4. text/xml 文件内容作为提交的数据
  • curl 设置自定义HEADER 头
  • 注意事项:
  • shell批处理
  • 外传

Get请求

get请求偏简单,我们主要看看post的请求处理

curl -X GET 127.0.0.1:8080/api/getInfo?name=zhangsan

POST请求

使用curl 发送POST请求
HTTP 的POST请求通常用于提交数据,一般有四种常见的POST提交数据方式。做Web后端开发时,不可避免的要自己发送请求来调试接口,如何使用curl工具来进行各种方式的POST请求。

1. application/x-www-form-urlencoded

最常见的POST请求,form表单。 使用curl进行请求很简单,示例如下:

curl -X POST 127.0.0.1:8080/api/getInfo -d "name=zhangsan" 

2. Multipart/form-data

这种请求一般涉及文件上传。后端对这种类型的请求处理也更复杂一些。

curl 127.0.0.1:8080/api/multipart -F raw=@raw.data -F name=zhangsan

3. application/json

curl -XPOST 127.0.0.1:8080/api/json --header "Content-Type : application/json" -d '{"name":"zhangsan"}' 

这种方式跟 application/x-www-form-urlencoded 类型的POST请求类似, -d 参数值是 JSON字符串,并且多了一个 Content-Type: application/json 指定发送内容的格式。
Web后端解析后,得到的结构都是 name=zhangsan 键值对。

4. text/xml 文件内容作为提交的数据

如果要提交的数据比较多,不方便写在命令行里,那么那么可以把数据内容写到文件中,通过 -d @filename 的方式来提交数据。
这是 -d 参数的一种使用方式。但是跟 multipart/form-data 中上传文件的POST不是一回事。 @ 符号表明后面跟的是文件名,要读取这个文件的内容作为 -d 的参数。

// 创建数据文件 data.json
{
“name” : “zhangsan”,
“age” : 18,
“habit” : [“zz”, “xxx”]
}

请求示例如下:

curl  -XPOST 127.0.0.1:8080/api/json --header "Content-Type : application/json"  -d @data.json

如果要用 application/x-www-form-urlencoded 方式提交,后端解析出同样的数据,那么 -d 参数是这样的, 注意数组参数的写法 。

// data.txt
name=zhangsan&age=18&habit[]=zz&habit[]=xxx

请求示例如下:

curl  -XPOST 127.0.0.1:8080/api/test -d @data.txt curl -XPOST 127.0.0.1:8080/api/test -d 'name=zhangsan&age=18&habit[]=zz&habit[]=xxx'

curl请求http结果保存到文件中

curl --header "Content-type : application/json" "hostname:port/path" > ./result.json

curl 设置自定义HEADER 头

Curl 是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服务器获取数据。
支持很多传输协议,尤其是 HTTP/HTTPS 以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS 协议等。
当你使用curl 向一个URL发送HTTP请求时,会使用一个默认的包含必要的头部字段(如: User-Agent,Host,Accept)的HTTP头。

在一些HTTP请求中,需要覆盖默认的HTTP头或者添加自定义的头部字段。为了解决这些问题,curl提供一个简单的方法来完全控制传出HTTP请求的HTTP头。
需要的参数是 -H 或者 --header。
为了定义多个HTTP头部字段,-H 选项可以在curl命令中多次指定。示例如下:

curl -H "host:220.181.38.149" -H "Accept-language:es" -H "Cookie:token=xxxx" www.baidu.com -v

注意事项:

header头、冒号和值质检不能有空格
自定义的Header头,需要加在标准头后面。
对于“User-Agent”,”Cookie”,”Host” 这类标准的HTTP头字段,通常会有另一种设置方法。curl命令提供了特定的选项来针对这些字段进行设置:

-A (or ––user-anget): 设置 User-Agent字段
-b(or ––cookie) : 设置 Cookie字段
-e(or ––referer):设置 Referer 字段
示例如下,两种方式是等效的:

curl -H “User-Agent: brower” hostname
curl -A “brower” hostname

shell批处理

一般情况下,我们需要编写shell文件做数据的批处理
简单的例子
initData.sh

reqUrl=http://192.168.1.145:8080/api/updateXXX
reqAuth="Bearer xxxxxxxxx"
reqType="application/json"curl -XPOST $reqUrl -H "Content-Type:$reqType" -H "Authorization:$reqAuth" -d '{"identifier":"1","roomNo":"3","name":"105","floorNumber":"03楼一层","numberOfPeople":"30"}'
echo 
curl -XPOST $reqUrl -H "Content-Type:$reqType" -H "Authorization:$reqAuth" -d '{"identifier":"1","roomNo":"4","name":"贵宾室","floorNumber":"03楼一层","numberOfPeople":"18"}'
echo 
curl -XPOST $reqUrl -H "Content-Type:$reqType" -H "Authorization:$reqAuth" -d '{"identifier":"1","roomNo":"5","name":"108(","floorNumber":"03楼一层","numberOfPeople":"40"}'
echo 

外传

😜 原创不易,如若本文能够帮助到您的同学
🎉 支持我:关注我+点赞👍+收藏⭐️
📝 留言:探讨问题,看到立马回复
💬 格言:己所不欲勿施于人 扬帆起航、游历人生、永不言弃!🔥

相关文章:

curl 使用发送POST GET请求 HEADER设置

curl 使用发送POST GET请求 HEADER设置 文章目录 Get请求POST请求1. application/x-www-form-urlencoded2. Multipart/form-data3. application/json4. text/xml 文件内容作为提交的数据 curl 设置自定义HEADER 头注意事项:shell批处理外传 Get请求 get请求偏简单&…...

使用 Transformer 和 Amazon OpenSearch Service 构建基于列的语义搜索引擎

在数据湖中,对于数据清理和注释、架构匹配、数据发现和跨多个数据来源进行分析等许多操作,查找相似的列有着重要的应用。如果不能从多个不同的来源准确查找和分析数据,就会严重拉低效率,不论是数据科学家、医学研究人员、学者&…...

算法通关村第九关——透彻理解二分查找

1.前言 常见的查找算法有顺序查找、二分查找、插值查找、斐波那契查找、树表查找、分块查找、哈希查找等。如果进行归类,那么二分查找、插值查找(一种查找算法)以及斐波那契查找都可以归为插值查找(大类)。而插值查找…...

【字节跳动青训营】后端笔记整理-4 | Go框架三件套之GORM的使用

**本人是第六届字节跳动青训营(后端组)的成员。本文由博主本人整理自该营的日常学习实践,首发于稀土掘金。 我的go开发环境: *本地IDE:GoLand 2023.1.2 *go:1.20.6 *MySQL:8.0 本文介绍Go框架三…...

【TI毫米波雷达笔记】UART串口外设配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】UART串口外设初始化配置及驱动(以IWR6843AOP为例) 最基本的工程建立好以后 需要给SOC进行初始化配置 int main (void) {//刷一下内存memset ((void *)L3_RAM_Buf, 0, sizeof(L3_RAM_Buf));int32_t errCode; //存放SOC初…...

C#---第十九课:不同类型方法的执行顺序(new / virtual / common / override)

本文介绍不同类型的方法,在代码中的执行顺序问题: 构造方法普通方法(暂用common代替)、虚方法(Virtual修饰)、New方法(new修饰)三个优先级相同overide方法(会替换virtual…...

[pytorch]torch.cuda用法以及判断显卡是不是存在问题

常见用法: torch.cuda.is_available() # 查看是否有可用GPU torch.cuda.device_count() # 查看GPU数量 torch.cuda.get_device_capability(device) # 查看指定GPU容量 torch.cuda.get_device_name(device) # 查看指定GPU名称 torch.cuda.empty_cache() # 清空程序占…...

JUC——多线程补充

前置可看 Java——多线程和锁_java多线程锁_北岭山脚鼠鼠的博客-CSDN博客 线程创建的三种方式 Thread、Runnable、Callable Thread类 Runable接口 Callable接口 Lamda表达式 Lamda表达式_北岭山脚鼠鼠的博客-CSDN博客 静态代理模式(Thread类的原理) 如下代码中 真实对象…...

代码随想录第32天|122.买卖股票的最佳时机 II,55. 跳跃游戏 ,45. 跳跃游戏 II

122.买卖股票的最佳时机 II 122. 买卖股票的最佳时机 II 思路比较简单 class Solution {public int maxProfit(int[] prices) {int res0,sum0;for(int i0;i<prices.length-1;i){if(prices[i1]-prices[i]>0){sumprices[i1]-prices[i];}ressum>res?sum:res;}return …...

Linux:Nginx服务与搭建

目录 一、Nginx概述 二、Nginx三大作用&#xff1a;反向代理、负载均衡、动静分离 三、Nginx和Apache 3.1Nginx和Apache的差异 3.2Nginx和Apache的优缺点比较 四、编译安装niginx 五、创建Nginx 自启动文件 六、Nginx的信号使用 6.1信号 七、升级 nginx1.18 nginx1.2…...

4、什么是NoSQL

4、什么是NoSQL NoSQL NoSQL Not Only SQL&#xff0c;就是不仅仅是SQL的意思 泛指非关系型数据库&#xff0c;随着web2.0的诞生&#xff01;传统的关系型数据库很难对付web2.0时代&#xff0c;因为web2.0时代又很多数据大爆炸新生的产物比如视频、音乐、大数据产生的其他的数…...

如何自己实现一个丝滑的流程图绘制工具(一)vue如何使用

背景 项目需求突然叫我实现一个类似processOn一样的在线流程图绘制工具。 这可难倒我了&#xff0c;立马去做调研&#xff0c;在github上找了很多个开源的流程图绘制工具&#xff0c; 对比下来我还是选择了 bpmn-js 原因&#xff1a; 1、他的流程图是涉及到业务的&#xff0c…...

ReoGrid.NET集成到winfrom

ReoGrid一个支持excel操作的控件,支持集成到任何winfrom项目内。 先看效果图: 如何使用&#xff1a; 使用ReoGrid自带excel模版设计工具先设计一个模版,设计器如下&#xff1a; 具体例子看官方文档 代码示例如下&#xff1a; var sheet reoGridControl1.CurrentWorksheet; …...

Elasticsearch实现增删改查

调用elasticsearch通常使用restful风格请求&#xff0c;这里记录一些常用的Java API和Postman Url Java API调用Es 1. 查询总文档数 Testvoid getAllCount() { // RestHighLevelClient clientnew RestHighLevelClient(RestClient.builder(new HttpHost("192.168…...

Rust 学习笔记(卷二)

文章目录 Rust 学习笔记&#xff08;卷二&#xff09;八、工程1. package 和 cratepackage 总览包根&#xff08;crate root&#xff09; 2. 模块初识模块单个源文件中的嵌套模块使用具有层级结构的源文件构造嵌套模块 3. 文档4. 使用第三方包5. 打包自己的包 九、标准库十、多…...

android amazon 支付接入

流程&#xff1a; 申请 Amazon 开发者帐号 ---> 在 amazon 控制台添加应用 ---> 添加应用内商品&#xff08;消费类商品&#xff0c;授权类商品&#xff0c;订阅类商品&#xff09;---> 导出 JSON 文件 --->集成 Amazon 支付 ---> 将导出的 JSON 文件 copy 到 …...

Vue2-快速搭建pc端后台管理系统

一.推荐二次开发框架 vue-element-admin Star(84k)vue-antd-admin Star(3.5k) 二.vue-element-admin 官网链接:https://panjiachen.github.io/vue-element-admin-site/zh/ 我这里搭建的是基础模版vue-admin-template(推荐) # 克隆项目 git clone https://github.com/PanJi…...

【产品文档】团队介绍PPT模板

今天和大家免费分享团队介绍的PPT模板。团队介绍是向他人展示团队的实力、专业性和能力的重要方式。通过一个有力的团队介绍&#xff0c;您可以突出团队的成员、经验、技能和取得的成就&#xff0c;从而增加信任、吸引合作伙伴、客户或投资者的兴趣 【模板预览】 动态演示效果…...

组件库的使用和自定义组件

目录 一、组件库介绍 1、什么是组件 2、组件库介绍 3、arco.design 二、组件库的使用 1、快速上手 2、主题定制 3、暗黑模式 4、语言国际化 5、业务常见问题 三、自定义组件 2、组件开发规范 3、示例实践guide-tip 4、业务组件快速托管 一、组件库介绍 1、什么是…...

网站和API支持HTTPS,最好在Nginx上配置

随着我们网站用户的增多&#xff0c;我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下&#xff0c;要从HTTP升级到HTTPS&#xff0c;让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手&#xff0c;从HTTP升级到HTTPS&#xff0c;同时支持静态网站和…...

UnitTest笔记: 拓展库DDT的使用

DDT (Data-Drivers- Tests) 允许使用不同的测试数据运行同一个测试用例&#xff0c;展示为不同的测试用例。 第一步&#xff1a; pip安装 ddt 第二步&#xff1a; 创建test_baidu_ddt.py 1. 测试类要使用ddt 修饰 2. 不同形式的参数化&#xff1a; 列表&#xff0c;字典&a…...

裂缝检测,只依赖OPENCV,基于YOLO8S

裂缝检测&#xff0c;只依赖OPENCV&#xff0c;YOLOV8S 现在YOLOV8S训练目标非常方便&#xff0c;可以直接转换成ONNX让OPENCV调用&#xff0c;支持C/PYTHON&#xff0c;原理很简单&#xff0c;自己找博客&#xff0c;有兴趣相互交流...

python编程环境使用技巧3-程序打包pyinstaller

前言 在Python中&#xff0c;打包指的是将Python代码和相关资源&#xff08;如配置文件、图像等&#xff09;整合到一个可执行的文件或安装包中&#xff0c;以便于在其他环境中使用。 下面是使用pyinstaller进行打包的简要步骤&#xff1a; 1-安装pyinstaller&#xff1a;在命…...

Go 自学:defer关键字

我们可以使用defer关键字延迟代码的执行&#xff0c;相当于我们把代码放入一个stack中&#xff0c;遵循last in first out的原则输出代码。 package mainimport ("fmt" )func myDefer() {for i : 0; i < 5; i {defer fmt.Print(i)} }func main() {defer fmt.Prin…...

【云计算】Docker特别版——前端一篇学会

docker学习 文章目录 一、下载安装docker&#xff08;一&#xff09;Windows桌面应用安装&#xff08;二&#xff09;Linux命令安装 二、windows注册登录docker三、Docker的常规操作(一)、基本的 Docker 命令(二)、镜像操作(三)、容器的配置(四)、登录远程仓库 四、镜像管理(一…...

.net使用RabbitMQ小记

使用RabbitMQ的优点 1.性能全面&#xff0c;rabbitmq性能比较全面&#xff0c;是消息中间件的首选 2.高并发&#xff0c;rabbitmq实现语言是天生就具备高并发高可用的erlang语言 3.任务异步处理&#xff0c;将不需要同步处理的并且耗时长的操作由消息队列通知消息接受方进行异步…...

layUI 中 穿梭框无法获取值的细节问题

初始化的时候一定要指定id&#xff0c;不然就会出现无法调用 获得右侧数据和实例重载的方法...

Kaggle回归问题Mercedes——Benz Greener Manufacturing

目录 前言1 题目介绍2 数据清洗3 数据可视化分析4 模型训练5 源码 前言 这是我在大三选修课的课程设计&#xff0c;内容参考了Kaggle上高赞的代码&#xff0c;有详细批注&#xff0c;整体比较基础&#xff0c;结构相对完整&#xff0c;便于初学者学习。这个是一个回归问题&…...

天润融通「微藤大语言模型平台2.0」以知识驱动企业高速增长

8月23日&#xff0c;天润融通&#xff08;又称“天润云”,2167.HK&#xff09;&#xff0c;正式发布「微藤大语言模型平台2.0」。 “大模型企业知识企业知识工程”。 “不能有效记录和管理知识的企业是不能持续进步的。在企业的生产流程中&#xff0c;相比于其他场景&#xff0…...

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题

项目场景&#xff1a; 安装oracle时&#xff0c;到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案&#xff1a; 针对客户端安装&#xff0c;在cmd中执行命令&#xff1a;前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…...

电脑如何做穿透外网网站/如何制作一个网页页面

从域控架构到中央集成式架构&#xff0c;跨域融合已经加速到来&#xff0c;从单一域控制器&#xff0c;到多域融合中央计算&#xff0c;市场门槛进一步抬升&#xff0c;市场也进入新一轮「攻坚」阶段。 高工智能汽车研究院发布《2023-2025年智能网联产业趋势报告》显示&#x…...

网站换ip影响 百度/搜外网 seo教程

windbg附加IE后&#xff0c;设置flash模块加载断点 sxe ld Flash32_30_0_0_113.ocx内存访问断点&#xff0c;Flash漏洞利用代码&#xff0c;通过任意地址读写&#xff0c;泄露一个Flash Object 虚表函数地址&#xff0c; 通过计算虚表函数地址&#xff0c;可以定位到Flash模块…...

扬州广陵区建设局网站/的磁力搜索引擎

昨天有一个朋友来拜访我&#xff0c;他们公司想花巨资来建设企业IT。但是由于涉及到电商直销&#xff0c;涉及到企业生产、上游溯源、下游代理商管理&#xff0c;所以需求很复杂&#xff0c;他问我怎么开展比较好。所谓的巨资&#xff0c;是和他们企业销售流水相比的。所以&…...

无锡网站制作联系方式/品牌宣传策略有哪些

#!usr/bin/env python #-*- codingutf-8 -*- #出现问题 为什么enumerate之后 用fromkeys 查询4,6不显示 # li [11,22] # a dict(enumerate(li,5)) # print a # # b a.fromkeys([22,33]) # print b#直接弄一个字典&#xff0c;fromkeys可以创建新字典 # li {1:k1,2:k2} #…...

网站建设分哪些类别/好的营销网站

开门见山的说&#xff1a;不会。首先&#xff0c;什么是编程能力&#xff1f;算法吗&#xff1f;数据结构吗&#xff1f;操作系统吗&#xff1f;是对语法的熟练程度吗&#xff1f;是源码的阅读量、代码的编写行数吗&#xff1f;搭个网站算是编程能力吗&#xff1f;都不是。编程…...

解释自己做的网站/天津seo排名扣费

&#xff08;1&#xff09;Connection对象&#xff1a;连接数据库。 &#xff08;2&#xff09;Command对象&#xff1a;执行一些简单操作命令&#xff0c;如&#xff1a;增删改删。即执行T-SQL语句。 Command对象在执行的的时候有几个比较重要的方法&#xff0c;如ExecuteNonQ…...