linux使用 curl 命令

curl 模拟 GET\POST 请求,以及 curl post 上传文件

一般情况下,我们调试数据接口,都会使用一个 postman 的工具。在命令行中,我们使用 curl 这个工具。

下面,我们来简单的说一下,curl 的一些常见使用方法:

curl GET 请求

curl命令 + 请求接口的地址。

curl localhost:9999/api/daizhige/article

如上,我们就可以请求到我们的数据了,如果想看到详细的请求信息,我们可以加上 -v 参数

curl localhost:9999/api/daizhige/article -v

操作结果如下图所示:

linux使用 curl 命令_第1张图片

 

curl POST 请求

我们可以用 -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 来查看详情。

linux使用 curl 命令_第2张图片

 

查看返回的 json 数据 - 安装 jq 工具

  • MacOS 用户在命令行输入如下命令安装

brew install jq

  • Ubuntu\Debian\Deepin 命令

sudo apt install jq

  • CentOS\RedHat 命令

sudo yum install jq

  • Arch 命令

sudo pacman -S jq

 

curl POST 上传文件

上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件。

我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:

curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v

执行结果如下图所示:

linux使用 curl 命令_第3张图片

 

curl 上传多个文件、设置 cookies 命令

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 后缀,返回结果就十分优雅

curl 上传多个文件、设置 cookies 命令 使用 jq 更优雅的展示

 

ctrl + r 查找历史命令记录

当我们在命令行执行了某条命令之后,实际上这条命令就已经被系统记录下来了。下次想要再调用这个命令,可以方便的通过 ctrl + r 快捷键来进行查找。

在命令行中使用 ctrl + r 激活搜索,然后输入关键词。如下图所示:

如果搜索出来的结果有多条,当前的这条不是你想要的,继续按 ctrl + r 快捷键,可以切换搜索结果,如下图所示:

可以看到,在不断的切换搜索结果了。

确定了某条历史执行命令之后,可以按 回车键 立即执行该命令,也可以按一下 ➡️ 右方向键,然后退出搜索模式,进而修改这条命令,然后继续执行。

通过 ctrl + r 快捷键,可以非常方便的让我们重复调试某些接口。

与 chrome 浏览器 配合,快速调试某接口

我们前端一般在浏览器中调试我们的开发项目,当遇到某个接口返回数据与我们预期不一致时,在浏览器控制台中,我们可以看到具体的返回结果,如下图所示

浏览器控制台

当接口修复后,想要观察结果,通常是通过刷新页面。如果是简单的操作还好,如果是需要多个步骤才能到达的页面,我相信你的心情会很不好。

这个时候,这个技巧就十分有帮助了!我们在有问题的接口名上右击,然后点击 Copy,再点击 Copy as cURL 就可以把这个请求转化为 curl 命令,然后到命令行终端中执行即可。

与 chrome 浏览器 配合,快速调试某接口

 

 


参考

更多 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

你可能感兴趣的:(Linux)