我必须在 cronjob 中调用 url,但 wget 从 url 中排除第二个参数。
网址格式:
https://example.com/frontend/?ml[do]=doStuff&ml[auth]=someAuthCode
Wget 排除了第二个参数,所以我变成“访问被拒绝”
我也尝试过:
https://example.com/frontend/?ml\[do\]=doStuff&ml\[auth\]=someAuthCode
-d 确认删除
---request begin---
GET /frontend/?ml[do]=doStuffHTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: example.com
Connection: Keep-Alive
---request end---
如何使用 2 个包含括号的 get 变量调用正确的 url?
答案1
您的 shell 正在作用于&
,这会结束命令;你也需要转义它(以及?
like[...]
是一个通配符):
wget https://example.com/frontend/\?ml\[do\]=doStuff\&ml\[auth\]=someAuthCode
或者
wget 'https://example.com/frontend/?ml[do]=doStuff&ml[auth]=someAuthCode'