前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >curl常用方法

curl常用方法

作者头像
没有故事的陈师傅
发布2020-12-16 10:33:36
1.6K0
发布2020-12-16 10:33:36
举报
文章被收录于专栏:运维开发故事

有时候经常会需要在本地模拟接口访问,有时候会使用GET,但是有时候会使用POST。这时候就会想到一个简便的工具:curl

curl格式:curl -H 请求头 -d 请求体 -X POST 接口地址

参数

内容

格式

-H(或者--header)

请求头

"Content-Type:application/json"

-d

POST内容

'{"user": "admin", "passwd":"12345678"}'

-X

请求协议

POST、GET、DELETE、PUT、PUSH、OPTIONS、HEAD

以下列举几种工作中比较常用的curl命令方法:

1、application/x-www-form-urlencoded

最常见的一种 POST 请求,用 curl 发起这种请求也很简单。

代码语言:javascript
复制
$ curl  -X POST -d 'name=allenjol'  http://www.ayunw.cn:2000/api/user
$ curl http://www.ayunw.cn:2000/login -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}'

-H 表示指定内容发送

2、application/json

跟发起 application/x-www-form-urlencoded 类型的 POST 请求类似,-d 参数值是 JSON 字符串,并且多了一个 Content-Type: application/json 指定发送内容的格式。

代码语言:javascript
复制
$ curl -H "Content-Type: application/json" -X POST -d '{"id": "001", "name":"allenjol", "phone":"15188888888"}'  http://ayunw.cn:2000/api/json

3、multipart/form-data

这种请求一般涉及到文件上传。后端对这种类型请求的处理也复杂一些。

代码语言:javascript
复制
$ curl -F raw=@data.json -F name=allenjol http://www.ayunw.cn:2000/api/multipart

4、把文件内容作为要提交的数据

如果要提交的数据不像前面例子中只有一个 name: allenjol 键值对,数据比较多,都写在命令行里很不方便,也容易出错,那么可以把数据内容先写到文件里,通过 -d @filename 的方式来提交数据。这是 -d 参数的一种使用方式,所以前面用到 -d 参数的地方都可以这样用。

实际上就是把 -d 参数值写在命令行里,变成了写在文件里。跟 multipart/form-data 中上传文件的 POST 方式不是一回事。@ 符号表明后面跟的是文件名,要读取这个文件的内容作为 -d 的参数。

例如,有一个 JSON 文件 data.json 内容如下:

代码语言:javascript
复制
{"id": "001", "name":"allenjol", "phone":"15188888888"}

就可以通过以下命令来提交数据。

代码语言:javascript
复制
$ curl -H "Content-Type: application/json" -X POST -d @data.json  http://www.ayunw.cn:2000/api/json

5、curl使用GET请求的时候带上用户名密码鉴权:

代码语言:javascript
复制
curl -X GET -u username:password

这个是访问nacos的例子。如果说不带上-u参数则会出现403 forbidden,因为权限被拒绝访问

代码语言:javascript
复制
curl -I -X GET -u allenjol:allen#jol2020 "http://www.ayunw.cn:2000/api/config?dataId=default.json&group=default"

假设目标url 为:127.0.0.1:8080/login

使用curl发送GET请求格式:

代码语言:javascript
复制
curl protocol://address:port/url?args

带用户名密码参数的访问:

代码语言:javascript
复制
curl http://127.0.0.1:8080/login?admin&passwd=12345678

使用curl发送POST请求格式:

代码语言:javascript
复制
curl -d "args" protocol://address:port/url

curl -d "user=admin&passwd=12345678" http://127.0.0.1:8080/login

公众号:运维开发故事

github:https://github.com/orgs/sunsharing-note/dashboard

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档