我的问题很简单:是否可以从 *nix 命令行发送 HTTP 请求,并指定包含所有参数的文件作为参数?
在 REST API 文档中,我们经常会看到这样的规范
POST /oauth/token HTTP/1.1
Host: api.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=password
&client_id=<API_KEY>
&client_secret=<API_SECRET>
&username=<USER_USERNAME>
&password=<USER_PASSWORD>
为了避免命令行太长且不易编辑,是否可以将这些信息放在一个文件中,采用上述格式(这似乎很标准)?理想情况下,使用 curl 的内容应该是这样的
curl --input-file myparameters.txt
我在 curl 文档中找不到这样的功能。也许可以使用其他命令行工具?提前致谢。
答案1
如果您从 UNIX 命令行执行此操作,我不明白为什么创建一个脚本不会那么困难,该脚本本质上解析您的文本输入,然后将其转换为 curl 可以在 CLI 上使用的内容。例如,如果一行以“HOST”开头,您可以使用 sed 在表示 curl 程序输入的行末尾创建一个表示主机名的字符串。其余部分也是如此。
否则,为什么不尝试自己编写一个简单的客户端/包装程序/脚本呢?这并不难,只是很乏味,你可以随时在这里寻求更多帮助(很久以前,我做过类似的事情来测试防火墙设置)。