首页 > 解决方案 > 处理“@”登录代理密码

问题描述

我正在使用代理发出 curl 请求。比方说:

proxyUsername = "username"
proxyPassword = "p@ssw3rd"
proxyHost = "myproxy.node-a.io"
proxyPort = "11115"

您可以像这样构造对 ipinfo.io 的代理请求:

curl --proxy http://username:password@host:port https://ipinfo.io/ip

使用上面的代理值,curl 看起来像:

curl --proxy http://username:p@ssw3rd@myproxy.node-a.io:11115 https://ipinfo.io/ip

问题是密码中的第一个“@”符号被视为密码和主机之间的令牌分隔符......

我已经尝试对密码进行 url 编码,但这也不起作用:

curl --proxy http://username:p%40ssw3rd@myproxy.node-a.io:11115 https://ipinfo.io/ip

有没有办法为密码中包含“@”字符的代理创建一个像上面这样的代理身份验证 URL?

(对于上下文,我正在尝试--proxy-serverchrome session设置。)

标签: node.jsbashcurlproxypasswords

解决方案


取自这里

URL 使用百分比编码,也就是 URL 编码。

@符号就是%40这种编码。

% curl -k -X POST https://user1:mypass8%40@myshop.com/job/build

或者使用-u/--user参数:

% curl -u user1:mypass8@ -k -X POST https://myshop.com/job/build


推荐阅读