curl命令行工具调试http接口使用小结

简介: curl命令行工具调试http接口使用小结

基于http的web api接口太常见了。


无论是微信,支付宝还是银联,都有https接口api, 工作中有时候需要调试下http接口。


如果为了调试个接口就要敲代码的话效率未免太低了。curl工具就很强大,直接用工具敲一下,就能把http接口给测一下,且可以打印出完整的过程,方便调试。


也许你会用postman,当然postman是一个不错的工具,但是前提是得安装有这个工具吧。


如果用习惯了命令行,curl工具就够简单、强大和好用了。而且还可以把要测试的包报存为文件,方便下次测试或者,执行测试用例。


相比postman工具,这个curl麻雀虽小五脏俱全,没有它不能的。更专业的一般都会有专门的api接口文档管理平台如yapi。但是当遇到个紧急的第三方接口对接调试时,还是curl更快和顺手。


举一个之前测试银联https的接口demo,为了安全起见,后台地址用XX表示。


需要提交的二进制数据,我提前准备到aaa.bin文件里了,如果敲在命令行,太费劲了。


UP.pem为本地公钥证书文件。


curl https://XXX.XXX.XXX.XX:XXX -v --cacert ./UP.pem -k -H 'User-Agent: Donjin Http 0.1' -H 'Content-Type: x-ISO-TPDU/x-auth' -H 'Cache-Control: no-cache' -H 'Content-Length: 93' --data-binary @aaa.bin


执行结果:


> POST / HTTP/1.1
> Host: XXX.XXX.XXX.XX:XXX
> Accept: */*
> User-Agent: Donjin Http 0.1
> Content-Type: x-ISO-TPDU/x-auth
> Cache-Control: no-cache
> Content-Length: 93
>
} [93 bytes data]
* upload completely sent off: 93 out of 93 bytes

这样就算完啦,相比之前,我没安装postman,接口测试我用php写的一个测试demo来说,这个curl工具更简单高效。


再举个更常见的例子:


调用平台接口post数据,数据为json格式:


curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} $url


如果json参数过长可使用如下方法,把json报文写入到文件中,如params.json保存在执行路径下,


-d参数部分使用@params.json 引用参数文件内容即可成功发送。


curl "http://127.0.0.1:9999/test" -H "Content-Type: application/json" -d @params.json -X POST
相关文章
|
22天前
|
Java API Spring
SpringBoot项目调用HTTP接口5种方式你了解多少?
SpringBoot项目调用HTTP接口5种方式你了解多少?
124 2
|
22天前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
74 0
|
22天前
状态码对于理解HTTP请求和响应的流程,以及调试网络问题非常重要
【5月更文挑战第15天】HTTP状态码由三位数字表示,分为1xx-5xx五类。1xx为信息响应,2xx表示成功,如200(请求成功)、201(创建成功)。3xx是重定向,如301(永久移动)、302(临时重定向)。4xx表示客户端错误,如400(坏请求)、404(未找到)。5xx是服务器错误,包括500(内部服务器错误)和503(服务不可用)。这些状态码用于理解请求响应流程和调试网络问题。
23 1
|
22天前
|
Web App开发 Java 测试技术
秒懂HTTPS接口(JMeter压测篇)
【5月更文挑战第11天】秒懂HTTPS接口(JMeter压测篇)
28 2
秒懂HTTPS接口(JMeter压测篇)
|
22天前
|
前端开发 API 网络架构
RESTful接口与http协议状态表述
该文介绍了RESTful风格API的好处和设计原则。RESTful API以资源为中心,通过HTTP方法(GET, POST, PUT, DELETE)表示操作,利用状态码反馈操作结果。它简化了客户端与服务端的交互,提供了一种通用规范,减少沟通成本。设计要点包括:URI描述资源,HTTP方法体现操作,使用标准HTTP状态码,GET不改变数据,使用复数名词,支持复杂资源关系,可选实现HATEOAS,以及接口版本管理。
|
22天前
|
Web App开发 前端开发 Java
SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
25 0
SpringBoot配置HTTPS及开发调试
|
22天前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之是否可以在模型部署发布后以http接口形式提供给业务开发人员使用
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
22天前
|
网络协议 安全
【专栏】`curl`是广泛用于网络编程和自动化脚本的命令行工具,支持HTTP、HTTPS等协议
【4月更文挑战第28天】`curl`是广泛用于网络编程和自动化脚本的命令行工具,支持HTTP、HTTPS等协议。在处理大文件或慢速服务器时,设置超时参数至关重要。本文介绍了`curl`的超时参数,如`-m`(最大操作时间)、`-c`(连接超时)、`--dns-timeout`(DNS解析超时)和`-t`(时间条件)。通过示例展示了如何设置这些超时,并提到了一些高级技巧和注意事项,如错误处理和带宽限制。合理设置超时能提高效率和可靠性,对编写健壮的自动化脚本非常有用。
|
22天前
|
安全 网络协议 算法
秒懂HTTPS接口(原理篇)
【4月更文挑战第24天】秒懂HTTPS接口(原理篇)
66 4
秒懂HTTPS接口(原理篇)
|
22天前
|
JSON 前端开发 数据格式
糊涂工具类真是场景下请求http接口的案例
糊涂工具类真是场景下请求http接口的案例
33 0