curl命令调试接口「建议收藏」

一.场景再现大家好,很快就过年了,在这里先祝各位新年快乐,阖家欢乐!现在我们切入主题,在我们平时开发接口完成后,需要上线联调接口,而接口往往和业务逻辑精密联系,想要调试接口,就需要将业务测一遍,那么有没有更好的办法使得调试更简单?在这篇文章中,我将常用的接口分为两类:第一类:自己开发服务于自己系统的接口,该类接口调试可以在本地使用postman工具调试;第二类:不是自己开发,调用别人能力…

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述

一.场景再现

大家好,很快就过年了,在这里先祝各位新年快乐,阖家欢乐!现在我们切入主题,在我们平时开发接口完成后,需要上线联调接口,而接口往往和业务逻辑精密联系,想要调试接口,就需要将业务测一遍,那么有没有更好的办法使得调试更简单?

在这篇文章中,我将常用的接口分为两类:
第一类:自己开发服务于自己系统的接口,该类接口调试可以在本地使用postman工具调试;
第二类:不是自己开发,调用别人能力接口服务于自己的系统,该类接口我们就可以使用curl命令调试。

二.案例讲解

由于我们平时遇到接口请求都是post请求,所以接下来我们以post请求为例,分别探讨http协议和https协议两种情况下如何通过curl命令来调试接口;

1.http协议

curl -v -X POST http://127.0.0.1:8080/milogenius/csf/qry/queryLogistics 
-H 'X-Trans-Id:zbtest2017110612170012345678' 
-H 'X-Channel-Id:NGBUSI' 
-H 'Accept-Charset:UTF-8' 
-H 'Content-type:application/json' 
d '{"beans":[], "object":{"busiCode":"milogenius", "sourceCode":"371", "targetCode":"1085", "version":"1.0", "transactionID":"108520170510140052260320", "reqInfo": { "busiSeq": "93120190106102400774118","svcNum":"110"}},"params": {}}

首先,我们要保证我们的服务提供方和我们之间的网络权限是打通的,然后我们在服务器的linux操作窗口,执行上述命令,就会看到接口返回的响应数据。
接下来,我们来分析以下这个命令:

  1. -v:显示版本信息
  2. -X:指定请求方式
  3. -H:指定请求头(可校验调用方是否有权限,通过判断请求头信息,如果有规定的请求头信息,则允许调用,否则拒绝调用)
  4. -d :请求报文

2.https协议

curl -v  -k -X POST ‘https://****/order/getDetail.json’ 
–cert ‘/app/milo/tomcat/milogenius/webapps/client.crt’ 
–key ‘/app/milo/tomcat/milogenius/webapps/client.key’ 
–pass ‘milogenius’

我们来分析下这个命令:

  1. -k :允许不使用证书到SSL站点;
  2. -cert: 客户端证书文件;
  3. -key: 私钥文件名 (SSL);
  4. -pass: 私钥密码 (SSL);

3.常见命令符

-a/–append 上传文件时,附加到目标文件
–anyauth 可以使用“任何”身份验证方法
–basic 使用HTTP基本验证
-B/–use-ascii 使用ASCII文本传输
-d/–data HTTP POST方式传送数据
–data-ascii 以ascii的方式post数据
–data-binary 以二进制的方式post数据
–negotiate 使用HTTP身份验证
–digest 使用数字身份验证
–disable-eprt 禁止使用EPRT或LPRT
–disable-epsv 禁止使用EPSV
–egd-file 为随机数据(SSL)设置EGD socket路径
–tcp-nodelay 使用TCP_NODELAY选项
-E/–cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
–cert-type 证书文件类型 (DER/PEM/ENG) (SSL)
–key 私钥文件名 (SSL)
–key-type 私钥文件类型 (DER/PEM/ENG) (SSL)
–pass 私钥密码 (SSL)
–engine 加密引擎使用 (SSL). “–engine list” for list
–cacert CA证书 (SSL)
–capath CA目 (made using c_rehash) to verify peer against (SSL)
–ciphers SSL密码
–compressed 要求返回是压缩的形势 (using deflate or gzip)
–connect-timeout 设置最大请求时间
–create-dirs 建立本地目录的目录层次结构
–crlf 上传是把LF转变成CRLF
–ftp-create-dirs 如果远程目录不存在,创建远程目录
–ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
–ftp-pasv 使用 PASV/EPSV 代替端口
–ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
–ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
–ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/–form <name=content> 模拟http表单提交数据
-form-string <name=string> 模拟http表单提交数据
-g/–globoff 禁用网址序列和范围使用{}和[]
-G/–get 以get的方式来发送数据
-h/–help 帮助
-H/–header 自定义头信息传递给服务器

–ignore-content-length 忽略的HTTP头信息的长度

-i/–include 输出时包括protocol头信息

-I/–head 只显示文档信息

-j/–junk-session-cookies 读取文件时忽略session cookie

–interface 使用指定网络接口/地址

–krb4 使用指定安全级别的krb4

-k/–insecure 允许不使用证书到SSL站点

-K/–config 指定的配置文件读取

-l/–list-only 列出ftp目录下的文件名称

–limit-rate 设置传输速度

–local-port 强制使用本地端口号

-m/–max-time 设置最大传输时间

–max-redirs 设置最大读取的目录数

–max-filesize 设置最大下载的文件总量

-M/–manual 显示全手动

-n/–netrc 从netrc文件中读取用户名和密码

–netrc-optional 使用 .netrc 或者 URL来覆盖-n

–ntlm 使用 HTTP NTLM 身份验证

-N/–no-buffer 禁用缓冲输出

-p/–proxytunnel 使用HTTP代理

–proxy-anyauth 选择任一代理身份验证方法

–proxy-basic 在代理上使用基本身份验证

–proxy-digest 在代理上使用数字身份验证

–proxy-ntlm 在代理上使用ntlm身份验证

-P/–ftp-port

使用端口地址,而不是使用PASV
-Q/–quote 文件传输前,发送命令到服务器
–range-file 读取(SSL)的随机文件
-R/–remote-time 在本地生成文件时,保留远程文件时间
–retry 传输出现问题时,重试的次数
–retry-delay 传输出现问题时,设置重试间隔时间
–retry-max-time 传输出现问题时,设置最大重试时间
-S/–show-error 显示错误
–socks4 <host[:port]> 用socks4代理给定主机和端口
–socks5 <host[:port]> 用socks5代理给定主机和端口
-t/–telnet-option <OPT=val> Telnet选项设置
–trace 对指定文件进行debug
–trace-ascii Like –跟踪但没有hex输出
–trace-time 跟踪/详细输出时,添加时间戳
–url Spet URL to work with
-U/–proxy-user <user[:password]> 设置代理用户名和密码
-V/–version 显示版本信息
-X/–request 指定什么命令
-y/–speed-time 放弃限速所要的时间。默认为30
-Y/–speed-limit 停止传输速度的限制,速度时间’秒
-z/–time-cond 传送时间设置
-0/–http1.0 使用HTTP 1.0
-1/–tlsv1 使用TLSv1(SSL)
-2/–sslv2 使用SSLv2的(SSL)
-3/–sslv3 使用的SSLv3(SSL)
–3p-quote like -Q for the source URL for 3rd party transfer
–3p-url 使用url,进行第三方传送
–3p-user 使用用户名和密码,进行第三方传送
-4/–ipv4 使用IP4
-6/–ipv6 使用IP6

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126987.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SpringBoot项目报错解决:“Error starting ApplicationContext. To display the conditions report re-run …”

    SpringBoot项目报错解决:“Error starting ApplicationContext. To display the conditions report re-run …”SpringBoot项目报错:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith’debug’enabled.以下方案80%可以帮助您解决这些个‘可恶的’问题报错内容和截图如下:ConnectedtothetargetVM,address:’127.0.0.1:4963′,transport:’socket’.____

  • jediscluster.set加锁_redislock

    jediscluster.set加锁_redislock一、前置配置需要已经集成成功JedisCluster本人已实践的参考:https://blog.csdn.net/NullToSay/article/details/109813194二、定义RedisLock类importorg.apache.commons.lang.StringUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importredis.clients.jedis.JedisClust.

    2022年10月14日
  • macbook电脑字体乱码了_mac系统语言改中文

    macbook电脑字体乱码了_mac系统语言改中文按照步骤来亲测可解决①如果没有~/.zshrc这个文件,那么新建一个该文件②新建命令:touch~/.zshrc③打开文件文件编辑vim~/.zshrc④修改内容并保存exportLANG=en_US.UTF-8⑤重启终端即可发现中文可以显示了……

    2022年10月30日
  • Tomcat部署WAR包访问不带项目名的方式

    Tomcat部署WAR包访问不带项目名的方式1、将项目打成WAR包放在Tomcat的webapps目录下2、在Tomcat的安装目录的conf下找到server.xml的文件,如:D:\apache-tomcat-9.0.8\conf\server.xml3、在Host标签里边添加<Hostname=”localhost”appBase=”webapps”unpackWARs=”true”…

  • 状态模式state_迭代器模式

    状态模式state_迭代器模式状态模式 State动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能不同.如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合模式定义允许一个对象在其内部状态改变时改变它的行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.实例朴素根据状态来执行下一步enum NetworkStat

  • 数据挖掘十大算法之Apriori算法「建议收藏」

    数据挖掘十大算法之Apriori算法「建议收藏」文章目录1.“啤酒与尿布”的案例2.Aprior算法核心术语事物集记录(事务)项目(项)项目集(项集)K项集支持度(Support)置信度(Confidence)最小支持度(min_support)最小置信度(min_confidence)提升度频繁K项(目)集候选K项(目)集3.Aprior算法的三大性质(关联规则的三大性质)4.Aprior算法实现过程5.数据挖掘5.1寻找关联属性5.2生成关联规则5.3更加严谨的栗子6.Aprior算法的优缺点6.1改进Aprior算法6.2F

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号