网站建设实施方案,网站架构分析工具,品牌网站建设c股j东大蝌蚪,怎样在建设部网站上查公司信息1 缘起
后端/后台项目开发过程中#xff0c;有两个阶段的接口测试和验证#xff0c;自测阶段#xff0c;通过Postman构建请求#xff0c; 自建一些参数#xff0c;测试功能以及边界条件#xff0c;这些都是可以自行掌控的#xff0c;当完成功能验证与前端对接时#x…1 缘起
后端/后台项目开发过程中有两个阶段的接口测试和验证自测阶段通过Postman构建请求 自建一些参数测试功能以及边界条件这些都是可以自行掌控的当完成功能验证与前端对接时 前端会根据接口文档进行调试当请求接口遇到问题时需要和后端进行验证前端在浏览器端获取到的完整接口请求即curl提供给后端/后台开发人员后端/后台开发人员可以直接使用curl进行接口验证无需重新将curl转为Postman中的请求当然Postman提供了curl转成请求的功能方便持久化。在使用curl的过程中发现有些参数还是没有很清晰是做什么的于是抽时间整理了一下常用请求对应的curl参数分享如下帮助提高开发效率。 虽然curl可以直接通过浏览器提供但是自行构建时仍需熟悉相关参数才能快速构建 当然Postman也可以直接根据构建的请求生成curl本文旨在补充知识。
2 curl 图片来源https://curl.se/
curl是通过URL传输数据的命令行工具和库。支持的协议有HTTP、HTTPS、FTP、FTPS、TELNET和TFPT等等。 用户通过终端执行curl命令与远程服务器交换数据同时curl支持文件上传、断点续传和代理等高级功能。
官网https://curl.se/ 参数https://curl.se/docs/manpage.html
2.1 常用参数
这里列出了最常用的请求方式所使用的curl参数包括
请求头表单请求体JSON/x-www-form-urlencoded
参数简要描述及样例见下表
序号参数缩写简要描述1--location-L用于重新请求URL当配置的URL定向到其他地址时会重新发送请求到新的URL2--header-H配置请求头参数如--header m-header-name: m-value3--basic无配置Basic认证参数结合user参数当然配置Basic认证也可以直接使用请求头的方式如--header Authorization: Basic value4--user-u配置用户认证信息结合Basic使用如--basic --user username:password5--oauth2-bearer无配置Bearer认证如--oauth2-bearer token-value同样可以直接使用请求头方式如--header Authorization: Bearer value6--form-F配置表单数据7--data-d配置请求体为JSON的数据8--data-urlencode无配置请求体为x-www-form-urlencoded格式的数据
2.2 测试样例
2.2.1 请求头header
2.2.1.1 普通header参数
普通header参数直接使用--header参数数据格式为key: value样例如下
curl --location http://localhost:9121/api/v1/common/header \
--header token: token-token测试结果如下
2.2.1.2 Basic认证header参数
Basic认证使用header参数时固定的key为Authorization值为Basic配合用户名和密码加密后的数据 固定格式--header Authoriztion: Basic value样例如下
curl --location http://localhost:9121/api/v1/common/auth \
--header Authorization: Basic eGlhb2h1YToxMjM0NTY测试结果如下
2.2.1.3 Bearer认证header参数
Bearer认证参数固定键为Authorization值为Bearer拼装Token 固定格式为--header Authorization: Bearer value样例如下
curl --location http://localhost:9121/api/v1/common/auth \
--header Authorization: Bearer NjMyZDc3YTBlZTliYjBlNDI3YTU1OWJhOmR5eHA2MmotblB2aWZubExTY3dVUUVZVmlhWEQ3bGJo测试结果如下
2.2.2 Basic认证参数
Basic认证参数直接使用时需要结合user参数显式地使用用户名和密码。 固定格式为--basic --user username:password样例如下
curl --location http://localhost:9121/api/v1/common/auth \
--basic --user xiaohua:123456测试结果如下
2.2.3 Bearer认证参数
Bearer认证参数直接使用固定格式为 --oauth2-bearer value样例如下
curl --location http://localhost:9121/api/v1/common/auth \
--oauth2-bearer NjMyZDc3YTBlZTliYjBlNDI3YTU1OWJhOmR5eHA2MmotblB2aWZubExTY3dVUUVZVmlhWEQ3bGJo测试结果如下
2.2.4 Path参数
Path参数即数据直接作为URL的一部分没有特别的参数直接使用URL即可 这里使用--location仅是为了保证URL重定向后可以重新请求URL无特别说明可以不使用该参数 固定的格式直接在curl后面添加完整URL固定格式curl URL样例如下
curl --location http://localhost:9121/api/v1/common/path/123456测试结果如下
2.2.5 Params参数
在URL中拼接参数时和Path参数一样只需提供完整的URL 固定格式curl URL样例如下
curl --location http://localhost:9121/api/v1/common/params?tokentoken-tokenusernameuser-name测试结果如下
2.2.6 Body参数
请求体参数常用的三种形式表单/JSON/x-www-form-urlencoded。
2.2.6.1 form-data
表单数据分为普通的键值对和文件传输表单。
键值对form-data数据 键值对的表单固定格式为--form key-namevalue样例如下
curl --location http://localhost:9121/api/v1/common/form-data \
--form tokentoken-token \
--form usernameuser-name测试结果如下
file form-data数据 文件表单数据参数有些不同需要添加固定的数据固定格式 --form keyfile-path样例如下
curl --location http://localhost:9121/api/v1/common/form-data/file \
--form fileD:/workfile/snapshot/写作-1.png测试结果如下
curl --location http://localhost:9121/api/v1/common/form-data/file \
--form fileD:/workfile/snapshot/写作-1.png注意这里的文件路径拼装有两种方式添加双引号和不添加双引号无比根据自己的操作系统确定是否添加。 有一次使用Linux服务器自动化部署服务时调用Azkaban接口上传文件使用了双引号上传失败后来是同事发现了这个去除双引号才上传成功
2.2.6.2 JSON
JSON格式的请求体数据固定格式为--data JSON数据样例如下
curl --location http://localhost:9121/api/v1/common/json \
--header Content-Type: application/json \
--data {token:token-token,username:user-name
}测试结果如下
2.2.6.3 x-www-form-urlencoded
x-www-form-urlencoded格式的请求体需要使用的参数为data-urlencode 固定格式为--data-urlencode keyvalue样例如下
curl --location http://localhost:9121/api/v1/common/x-www-form-urlencoded \
--header Content-Type: application/x-www-form-urlencoded \
--data-urlencode tokentoken-token \
--data-urlencode usernameuser-name测试结果如下
3 小结
1curl是传输数据的命令行工具 2curl请求HTTP/HTTPS接口时常用的参数--header/--form/--data/--data-urlencode/--basic/--user/--oauth2-bearer分别对应请求头/表单/JSON请求体/x-www-form-urlencoded请求体/Basic认证/Bearer认证 3curl常用于前后端接口验证无需重新构建请求如Postman构建直接使用curl即可。