HTTP 프록시의 사용자 이름 / 암호에 특수 문자를 사용하는 방법은 무엇입니까?


26

Windows 컴퓨터에서 HTTP 프록시를 설정하려고합니다. 문제는 암호에 특수 문자 (@)가있어 set명령이 실패 한다는 것입니다 .

나는 문자 ( \@)를 이스케이프 처리하고 16 진수 값 ( %40)으로 백분율 인코딩 하여 아무 소용이 없었습니다.

예를 들어 사용자 이름 Foo와 암호 B @ r을 사용하여 다음 명령을 시도했습니다.

set http_proxy=http://foo:B\@r@http-gateway.domain.org:80
set http_proxy=http://foo:B%40r@http-gateway.domain.org:80

비밀번호 변경 이외의 방법으로 프록시가 비밀번호를 사용하도록하려면 어떻게해야합니까?


@ 기호로 인해 세트가 실패하거나 http_proxy 환경 변수를 사용하는 도구가 실패합니까?
Mike Cornell

예. 형식이 username : password @ server : port 형식이므로 비밀번호 중간에 @를 사용하면 비밀번호의 오른쪽이 호스트 이름으로 간주되므로 호스트 이름이 r @ http- gateway.domain.org. "r @"가 없어야합니다.
Philluminati

2
% 40을 사용해 보았는데 (Windows에서) 효과가 있습니까?
thegreendroid

실제로 Windows와 Linux (우분투) 모두에서 작동합니다.
thegreendroid

답변:


29

당신은 퍼센트 인코딩해야 | 특수 문자를 인코딩 하십시오. 예를 들어이 대신 :

http://foo:B@r@http-gateway.domain.org:80

당신은 이것을 작성합니다 :

http://foo:B%40r@http-gateway.domain.org:80

따라서 @로 대체됩니다 %40.


2
인코딩은 실제로이 문제 (및 다른 많은 문제)를 해결하는 방법입니다.
HTDutchy

나는 일부 문자를 두 번 urlencode해야한다는 것을 발견했다
dovidweisz

1
encodeURIComponent()이 목적으로 자바 스크립트 를 사용하는 것이 좋습니다 . 브라우저를 쉽게 사용할 수 있습니다 DeveloperTools -> Console.
Mir-Ismaili

2

특수 문자에 특수 문자의 % Ascii 코드를 16 진 표기법으로 사용하십시오. 내 비밀번호가 AB @ 12 # 라고 가정 하고 비밀번호를 다음과 같이 설정해야합니다.

git config --global http.proxy *http://usernamne:**AB%4012%23%26**@myipadress:portnumber*

임의의 숫자의 16 진 ASCII 코드를 아는 경우 ASCII 표를 참조하십시오.



-1

SO에 대한이 답변을 바탕으로 @ 기호를 이스케이프 처리하기 위해 ^를 사용할 수 있습니까?


둘 다에 응답하여 세트가 성공하면 환경 변수를 사용하는 도구입니다. set http_proxy=http://foo:B^@r@http-gateway.domain.org:80 jruby -S gem install rakeERROR : gem ... (URI :: InvalidURIError)을 실행하는 동안 http 체계가 레지스트리 부분을 허용하지 않습니다. foo : B @ r @ http- gateway.domain.org:80 (또는 잘못된 호스트 이름?)
pyropenguin

이것은 ^를 사용하는 Windows를 사용하는 질문이 아닌 Linux 기반 질문입니다. wget: unable to resolve host address 프록시 환경 변수를 설정 한 후에도 tf4ce@server.company.com '을 얻 습니다.
Philluminati

2
실제로 그것은 Windows 기반의 질문입니다 ... 나는 개인적으로 pyropenguin을 알고 있습니다.
Mike Cornell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.