Передача пользователя и пароля в URL не работает - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть такой URL: X.XXX.XXX.XXX:10080

Я попытался добавить пользователя и пароль в этот URL, как это: 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, тогда я ввожу пароль, он работает, я могу подключиться к этому серверу.

Мне нужно позвонить по моему URL с именем пользователя и паролем:

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

Но это не работает.

Я прочитал это решение: Использование cURL с именем пользователя и паролем? , но я не нашел решения

У вас есть представление, почему?

1 Ответ

0 голосов
/ 02 ноября 2018

Казалось бы, 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 с символа $: %24:

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

Согласно RFC1738 , знак доллара был разрешен как незарезервированный символ и мог использоваться напрямую, но этот старый RFC с тех пор много раз обновлялся. RFC3986 , например, больше не упоминает его как незарезервированный символ. Это означает, что символ $ получил особое значение и должен быть закодирован в любом URL-адресе, где он не выполняет функцию, которой он был присвоен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...