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
相关文章
|
11天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
17天前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
53 1
|
1月前
|
JSON Java fastjson
Java Http 接口对接太繁琐?试试 UniHttp 框架吧
UniHttp 是一个声明式的 HTTP 接口对接框架,旨在简化第三方 HTTP 接口的调用过程。通过注解配置,开发者可以像调用本地方法一样发起 HTTP 请求,无需关注请求的构建和响应处理细节。框架支持多种请求方式和参数类型,提供灵活的生命周期钩子以满足复杂的对接需求,适用于企业级项目的快速开发和维护。GitHub 地址:[UniAPI](https://github.com/burukeYou/UniAPI)。
|
5月前
|
安全 API 持续交付
阿里云云效产品使用问题之如何从流水线访问内网平台的HTTP接口
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
255 3
快速上手|HTTP 接口功能自动化测试
|
6月前
状态码对于理解HTTP请求和响应的流程,以及调试网络问题非常重要
【5月更文挑战第15天】HTTP状态码由三位数字表示,分为1xx-5xx五类。1xx为信息响应,2xx表示成功,如200(请求成功)、201(创建成功)。3xx是重定向,如301(永久移动)、302(临时重定向)。4xx表示客户端错误,如400(坏请求)、404(未找到)。5xx是服务器错误,包括500(内部服务器错误)和503(服务不可用)。这些状态码用于理解请求响应流程和调试网络问题。
75 1
|
1月前
|
Java 数据处理 开发者
Java Http 接口对接太繁琐?试试 UniHttp 框架~
【10月更文挑战第10天】在企业级项目开发中,HTTP接口对接是一项常见且重要的任务。传统的编程式HTTP客户端(如HttpClient、Okhttp)虽然功能强大,但往往需要编写大量冗长且复杂的代码,这对于项目的可维护性和可读性都是一个挑战。幸运的是,UniHttp框架的出现为这一问题提供了优雅的解决方案。
71 0
|
3月前
|
负载均衡 中间件 Go
五分钟给你的 gRPC 服务加上 HTTP 接口
五分钟给你的 gRPC 服务加上 HTTP 接口
|
6月前
|
Web App开发 Java 测试技术
秒懂HTTPS接口(JMeter压测篇)
【5月更文挑战第11天】秒懂HTTPS接口(JMeter压测篇)
1817 2
秒懂HTTPS接口(JMeter压测篇)
|
5月前
|
JSON API 数据格式
curl 使用:命令行中的 HTTP 客户端
`curl` 是命令行神器,用于与服务器交互,支持HTTP、HTTPS、FTP等协议。本文教你如何用它做POST请求(-d/--data)、GET请求(-G/-d)、JSON请求(-H 'Content-Type: application/json')和文件上传(-F)。学会这些,轻松测试API、自动化任务。现在就动手试试吧!
65 0