我在 raspberry pi (raspian) 上运行云服务器,并想告诉我的主机 IP 地址。为此,我的 URL 提供商提供了一个 API,其工作方式是发送:
https://<provider_url>/upd.php?user=<username>&pwd=<pwd>&host=<hostname>
如果我将其输入到浏览器中(显然带有正确的参数),我会收到消息“主机名已更新”。
为了自动化这个过程,我想通过命令行做同样的事情。在阅读了 curl
命令后,我尝试了
curl --data "user=<username>&pwd=<pwd>&host=<hostname>" https://<provider_url>/upd.php
因为给出的字符串--data
应该用“?”附加到 URL 中,并且每个参数都用“&”分隔。但是,我在“inv
答案1
因为给出的字符串
--data
应该附加到 URL 中?
你忽略了这一点[强调我的]:
-d
,--data <data>
(HTTP)以邮政向 HTTP 服务器发出请求 […]
-G
,--get
使用此选项时,将使所有用 、 或 指定的数据
-d
在--data
HTTP中使用--data-binary
。--data-urlencode
GET 请求代替 POST 请求否则将被使用。数据将使用?
分隔符附加到 URL。
使用整个原始字符串作为 URL 也应该可行。请注意引号:
curl 'https://<provider_url>/upd.php?user=<username>&pwd=<pwd>&host=<hostname>'