Curl命令POST请求

news2024/9/21 19:06:19

curl工具介绍:

       CURL是一个利用URL语法在命令行下工作的文件传输工具,被广泛应用在Unix、Linux发行版中,并且有DOS和Win32、Win64的移植版本。同时它还支持诸多的通信协议(我们常用的有HTTP、HTTPS、FTP、SMTP、TELNET等)。

       我们可以使用它进行HTTP POST、HTTP PUT、FTP上传、cookies、用户认证、IP代理、网页下载等常用功能。

本文重点:

       本文主要对curl功能中的HTTP POST进行介绍,主要用于在linux环境下进行接口测试或现场联调。(在windows环境下,我们可以采用postman等请求工具代替)

坑点:

windows下的curl工具,在引号,中文等问题上,有很多坑,建议使用linux下的curl。

常见curl POST请求示例:

1. 请求参数为json数据

curl -i -H "Content-Type:application/json" -X POST -d '{"XXX":"xxx"}' http://localhost:18080/test

2.请求参数为表单数据

curl -i -d "symbol=sz000001&scale=5&ma=5&datalen=1" -X POST http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData

常用命令选项解释:

         上面请求示例中的 -i 是为了获取返回的请求头信息。如图

        

-i 、-I (大写i)、-v 的作用有相同之处。

-v是verbose的意思,意为啰嗦的,唠叨的,它能输出整个请求过程,请求头,响应头,响应结果等一系列信息。

-i 是include的意思,返回响应结果的同时返回响应头。

-I 是 仅返回响应头

-----------------------------------------------------------------------------------------------------------------------------------------

-H 是header的意思,可以自定义要发送到服务端的请求头。如-H "Content-Type:application/json"

-X (大写x)表示使用指定的请求方式。如果不清楚默认请求方式时建议指定请求方式。如 -X POST

-d 表示data,表示请求的数据,如 -d  {\"XXX\":\"xxx\"} 

windows下注意点(linux忽略):

1. json格式的数据需要进行转义,转成字符串的形式。如果请求参数为 -d  '{"XXX":"xxx"}' 有时会报400,bad request,后台无法接受数据,需转义为 "{\"XXX\":\"xxx\"}" 的格式。

说“有时“的原因是我用windows下的curl工具执行:

curl -i -H "Content-Type:application/json" -d '{"order":"201904171408425095"}' http://192.168.149.71/test

报400错误,同样的命令在linux下执行,正确。所以在测试命令的时候,建议在linux下的curl执行。

2.如果json数据包含中文,可以采用json文件的形式 (在windows下有这个问题,在linux下测试,不需要对中文处理也行)

curl -i -H "Content-Type:application/json;charset=utf-8" -X POST -d @itemdata.json  http://localhost:18080/test

itemdata.json是curl的bin目录的文件,文件中的json为正常json。或者将要传的中文转换为base64的格式替换。

拓展:

1、IP代理,在对方服务器把你IP屏蔽掉时用。

curl -x 10.10.90.83:80 -o home.html http://www.sina.com.cn

-x (小写x) 相应的代理IP。 -o filename 表示将目标网页下载到filename的路径下,仅有名字表示的根目录下,一般在curl的bin目录下。

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

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

相关文章

山西电力市场日前价格预测【2024-01-14】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-14)山西电力市场全天平均日前电价为415.13元/MWh。其中,最高日前电价为851.84元/MWh,预计出现在18:15。最低日前电价为198.87元/MWh,预计…

对于软件测试的认识和了解

对软件测试的认识: 软件测试要求开发人员避免测试自己开发的程序。从心理学角度讲,这是很有道理的。特别是一个相对复杂的系统,开发人员在刚刚开发完成的时候,尚沉浸于对自己设计的回味之中。此时去测试的话往往会侧重于程序本身的…

U盘抜太快打不开恢复方法

U盘是一种常用的存储设备,由于其便携性和大容量等特点,被广泛应用于数据存储和传输。然而,有时候我们会遇到U盘拔出后无法再次使用的问题,这通常是由于U盘拔出太快导致的。本文将深入探讨U盘拔太快打不开的原因,并提供…

单例模式的八种写法、单例和并发的关系

文章目录 1.单例模式的作用2.单例模式的适用场景3.饿汉式静态常量(可用)静态代码块(可用) 4.懒汉式线程不安全(不可用)同步方法(线程安全,但不推荐用)同步代码块&#xf…

Java初学习

Java代码示例: public class helloworld {public static void main(String[] args){System.out.println("hello world");} } Java程序的名字需要和文件名字一致,就是那个helloworld Java程序需要对类有深度的认识: 对象是类的…

猫狗大战(猫狗识别)

1.问题简介 1.1问题描述 在这个问题中,你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型,能够准确地区分图像中是猫还是狗。 1.2预期解决方案 你的目标是通过训练一个机器学习模型,使其在给定一张图像时能够准…

kafka之java客户端实战

1. kafka的客户端 Kafka提供了两套客户端API,HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节,使用起来比较简单,是企业开发过程中最常用的客户端API。 而LowLevel API则需要客户端自己管理Kafka的运行细节,Pa…

UniRepLKNet实战:使用 UniRepLKNet实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

【数模百科】距离美赛还有20天,不要忘了阅读往年获奖论文(附04-23年美赛获奖论文)

之前发了很多数模相关的知识,受到了一些人的关注,也有很多人私下问我,距离美赛还有20几天了,还来不来得及。 对此我想说, 来不来得及重要吗? 你名都报了,钱也交了,还是笔不小的钱…

Vue.js设计与实现阅读-3

Vue设计与实现阅读-3 1、声明式描述UI2、渲染器3、组件4、模板的工作原理5、Vue.js 是各个模块组成的有机整体 前言 前面一章我们了解了,开发体验是衡量一个框架的重要指标之一。提供友好的警告信息至关重要,但是越详细的警告信息,意味着框架…

前端 TS 语法继承 多态 修饰符 readonly 抽象类 ts 基本写法 可选 剩余参数 函数重载 接口 类(3)

继承 继承之间的叫法 A类继承了B类,那么A类叫做子类,B类叫成基类 子类 ---》派生类 基类 ---》超类(父类) // 继承之间的叫法 // A类继承了B类,那么A类叫做子类,B类叫成基类 // 子类 ---》派生类 // 基类 …

性能瓶颈分析定位

用vmstat、sar、iostat检测是否是CPU瓶颈 用free、vmstat检测是否是内存瓶颈 用iostat、dmesg 检测是否是磁盘I/O瓶颈 用netstat检测是否是网络带宽瓶颈 1 首先进行OS层面的检查确认 首先要确认当前到底是哪些进程引起的负载高,以及这些进程卡在什么地方&#x…

sectigo ip证书种类买一年送一月

Sectigo旗下的IP证书是专为只有公网IP地址的网站准备的。Sectigo旗下的数字证书大多是域名证书,例如,单域名SSL证书、多域名SSL证书、通配符SSL证书等。这些证书申请时必须验证域名所有权,申请者需要有一个拥有管理全的域名网站,那…

SpringIOC之support模块GenericGroovyApplicationContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

RAG代码实操之斗气强者萧炎

📑前言 本文主要是【RAG】——RAG代码实操的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#x…

京东宣布启动鸿蒙原生应用开发,全力支持鸿蒙生态 | 百能云芯

华为常务董事、终端BG CEO、智能汽车解决方案BU董事长余承东于1月10日在微博上发布了一条令人振奋的消息:京东即将启动鸿蒙原生应用的开发。这一消息在科技圈掀起了不小的波澜,也为鸿蒙系统的发展注入了新的动力。 京东集团首席执行官兼执行董事许冉和余…

10年果粉拯救老掉牙Mac心得(没错我是标题党)

连续两周了,当我不能用Mac,或者说当我闲置了近10年隔三差五的用Mac时,成功发现我的AppleID已经无法登录了。事情是这样的,当我踌躇满志地准备改一篇稿子(潜在的稿费啊亲!)时,发现Pages竟然没有W…

Android Studio导入项目 下载gradle很慢或连接超时

AS最常见的问题之一就是下载gradle非常慢,还经常出现下载失败的情况,没有gradle就无法build项目,所以一定要先解决gradle的下载问题,下面教大家两种常用方法。 因为我的项目绝大多数使用的是gradle-5.6.4-all,下面就以…

谷歌DeepMind最新成果:机器人灵巧操作服务我们日常生活

谷歌DeepMind最新成果:机器人灵巧操作服务我们日常生活 CAAI认知系统与信息处理专委会 2024-01-13 00:00 发表于北京 几乎是和斯坦福“炒虾洗碗”机器人同一时间,谷歌DeepMind也发布了最新具身智能成果。 并且是三连发: 先是一个主打提高决…

FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

Xilinx中PCIe简介以及IP核XDMA的使用 例如:第一章 PCIe简介以及IP核的使用 文章目录 Xilinx中PCIe简介以及IP核XDMA的使用一、PCIe总线概述1.PCIe 总线架构2.PCIe 不同版本的性能指标及带宽计算3.PCIe 接口信号 二、XDMA1.XDMA 与其它 PCIe IP 的区别2.XDMA简介 三…