一般情况下,我们调试数据接口,都会使用一个 postman 的工具。在命令行中,我们使用 curl 这个工具。
下面,我们来简单的说一下,curl 的一些常见使用方法:
curl命令 + 请求接口的地址。
curl localhost:9999/api/daizhige/article
如上,我们就可以请求到我们的数据了,如果想看到详细的请求信息,我们可以加上 -v 参数
curl localhost:9999/api/daizhige/article -v
操作结果如下图所示:
我们可以用 -X POST 来申明我们的请求方法,用 -d (或者--data)参数,来传送我们的参数。
所以,我们可以用 -X PUT 和 -X DELETE 来指定另外的请求方法。
curl localhost:9999/api/daizhige/article -X POST -d "title=comewords&content=articleContent"
如上,这就是一个普通的 post 请求。
但是,一般我们的接口都是 json 格式的,这也没有问题。我们可以用 -H 参数来申明请求的 header
curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '{"title":"comewords","content":"articleContent"}'
so, 我们可以用 -H 来设置更多的 header 比如,用户的 token 之类的。
同样,我们可以用 -v 来查看详情。
查看返回的 json 数据 - 安装 jq 工具
brew install jq
sudo apt install jq
sudo yum install jq
sudo pacman -S jq
上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件。
我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:
curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
执行结果如下图所示:
curl http://localhost:3000/api/v1/upload -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -H 'Cookie:token=68fed7e53110f7c4e095d932274a56ea'
1
如上,这是一个上传多个文件的命令,和上传单个文件是没有什么太大区别的,就是直接写多个文件即可。设置 cookies 和设置普通的 header 并没有什么太大的区别,如果需要设置多个 cookie 值,可以用 ; 号进行分割。加上 -s | jq 后缀,返回结果就十分优雅
当我们在命令行执行了某条命令之后,实际上这条命令就已经被系统记录下来了。下次想要再调用这个命令,可以方便的通过 ctrl + r 快捷键来进行查找。
在命令行中使用 ctrl + r 激活搜索,然后输入关键词。如下图所示:
如果搜索出来的结果有多条,当前的这条不是你想要的,继续按 ctrl + r 快捷键,可以切换搜索结果,如下图所示:
可以看到,在不断的切换搜索结果了。
确定了某条历史执行命令之后,可以按 回车键 立即执行该命令,也可以按一下 ➡️ 右方向键,然后退出搜索模式,进而修改这条命令,然后继续执行。
通过 ctrl + r 快捷键,可以非常方便的让我们重复调试某些接口。
我们前端一般在浏览器中调试我们的开发项目,当遇到某个接口返回数据与我们预期不一致时,在浏览器控制台中,我们可以看到具体的返回结果,如下图所示
当接口修复后,想要观察结果,通常是通过刷新页面。如果是简单的操作还好,如果是需要多个步骤才能到达的页面,我相信你的心情会很不好。
这个时候,这个技巧就十分有帮助了!我们在有问题的接口名上右击,然后点击 Copy,再点击 Copy as cURL 就可以把这个请求转化为 curl 命令,然后到命令行终端中执行即可。
更多 curl 的使用方法,以及参数说明,可以在系统中输入 man curl /curl -help来进行查看。或者,点击 curl man 查看网页版的介绍(https://curl.haxx.se/docs/manpage.html)
curl 模拟请求:https://blog.csdn.net/fungleo/article/details/80703365
linux 或 mac 命令行更优雅的使用 curl 命令:https://fungleo.blog.csdn.net/article/details/105794798