【问题标题】:Passing user and password in URL doesn't work在 URL 中传递用户名和密码不起作用
【发布时间】:2019-04-06 12:39:51
【问题描述】:

我有一些这样的网址:X.XXX.XXX.XXX:10080

我尝试在此网址中添加用户和密码,如下所示:http://OLM:OLM794$@X.XXX.XXX.XXX:10080

用户 = OLM

Psw = OLM794$

它不起作用

当我 运行 时:curl http://OLM:OLM794$@X.XXX.XXX.XXX:10080 它显示给我:

curl: (6) Could not resolve host:OLM:OLM794X.XXX.XXX.XXX,它删除了$@ 和端口:10080

当我尝试:curl -u OLM X.XXX.XXX.XXX:10080 然后我输入密码,它可以工作,我能够连接到该服务器。

我需要用这样的用户名和密码调用我的网址:

http://OLM:OLM794$@X.XXX.XXX.XXX:10080

但它不起作用。

我阅读了这个解决方案:Using cURL with a username and password? 但我还没有找到解决方案

你知道为什么吗?

【问题讨论】:

  • 在提出问题之前我已经看过所有的解决方案,但它不起作用!
  • 你有没有尝试过这个(引用等)? curl -u "OLM:OLM794$" "http://X.XXX.XXX.XXX:10080" 我通常在必须设置代理(参数-x)时看到错误。如果它有时有效,则不应该是这种情况。
  • @Jan Molnar 是的,它适用于" ",您可以添加您的解决方案来接受它,我有另一个问题,也许您有一个想法,当我在肥皂地址位置调用此 url 时,它没有像这样工作:<soap:address location="http://'OLM:OLM794$'@X.XXX.XXX.XXX:10080"/>
  • @PRINCE 我相信你不能使用单引号代替双引号。请参阅我的答案以获得更强大的解决方案。

标签: html http curl login server


【解决方案1】:

curl 似乎会解析并重构 URL,忽略它认为非法的字符。对我来说,相同的命令会给出不同的错误。可能是你的 curl 版本与我的不同。

$ curl -v http://OLM:OLM794$@127.0.0.1:10000
* Rebuilt URL to: http://OLM:OLM794127.0.0.1:10000/
* Port number ended with 'O'
* Closing connection -1
curl: (3) Port number ended with 'O'

解决方案很简单,只需 url-escape $ 符号:%24:

$ curl http://OLM:OLM794%24@127.0.0.1:10000

根据RFC1738,美元符号被允许作为非保留字符并且可以直接使用,但是这个旧的RFC已经更新了很多次。例如,RFC3986 不再将其作为无保留字符提及。这意味着$ 符号具有特殊含义,应该在任何不提供其功能的 URL 中进行编码。

【讨论】:

  • 感谢@Jochem Kuijpers,它可以与%24" ""OLM:OLM794$"@X.XXX.XXX.XXX:10080 一起使用,就像@Jan Molnar 解决方案一样,但现在我面临一个新问题,也许你有一个想法,当我称之为肥皂地址位置中的 url 它不能像这样工作:<soap:address location="http://'OLM:OLM794$'@X.XXX.XXX.XXX:10080"/> 也带有`当我在肥皂地址位置调用这个 url 时,它不能像这样工作:
    OLM:OLM794%24@X.XXX.XXX.XXX:10080">`跨度>
  • @PRINCE 不要使用单引号转义凭据。相反,只需对它们进行 url 编码。 <soap:address location="http://OLM:OLM794%24@X.XXX.XXX.XXX:10080"/> 应该可以工作。如果这不起作用,请考虑更改密码,使其不包含非法 URL 字符,或者看看您是否可以使用更好的身份验证方法。
  • 在 curl 中,它可以作为您的解决方案 %24,但在我的 soap:address 中,它没有
  • 好的,我接受这个答案,因为问题是关于curl 谢谢
  • 也许它与处理 XML 中的 URL 的任何代码有关。如果是这样,我建议您将其作为一个新问题发布。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2011-12-24
  • 1970-01-01
相关资源
最近更新 更多