当前位置: 首页 > 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;同时支持静态网站和…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...