Làm cách nào để sử dụng các ký tự đặc biệt trong tên người dùng / mật khẩu cho HTTP proxy?


26

Tôi đang cố gắng thiết lập proxy HTTP trên máy Windows. Vấn đề là, mật khẩu có một ký tự đặc biệt (@) trong đó khiến cho setlệnh bị lỗi.

Tôi đã thử cả thoát ký tự ( \@) và mã hóa phần trăm với giá trị hex ( %40), nhưng không có kết quả.

Ví dụ: với tên người dùng Foo và mật khẩu B @ r, tôi đã thử các lệnh sau:

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

Khác với việc thay đổi mật khẩu, làm cách nào để proxy có thể sử dụng mật khẩu?


Là tập hợp bị lỗi hoặc là công cụ sử dụng biến môi trường http_proxy bị lỗi do biểu tượng @?
Mike Cornell

Vâng. Bởi vì định dạng là tên người dùng: password @ server: port, việc có @ ở giữa mật khẩu khiến cho phía bên phải mật khẩu của bạn được coi là tên máy chủ, do đó, độ phân giải tên máy chủ ở trên không thành công vì cho rằng tên máy chủ là r @ http- gateway.domain.org. "R @" không nên ở đó.
Philluminati

2
Tôi đã thử sử dụng% 40 và nó hoạt động (trên Windows), bạn có chắc không?
thegreendroid

Trên thực tế, nó hoạt động trên cả Windows và Linux (Ubuntu).
thegreendroid

Câu trả lời:


29

Bạn phải mã hóa phần trăm | mã hóa các ký tự đặc biệt. Ví dụ thay vì điều này:

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

bạn viết cái này:

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

Vì vậy, @được thay thế bằng %40.


2
mã hóa thực sự là cách để khắc phục vấn đề này (và nhiều vấn đề khác).
HTDutchy

tôi thấy rằng tôi cần phải nhân đôi urlencode một số ký tự
dovidweisz

1
Tôi đề nghị đơn giản là sử dụng javascript encodeURIComponent()cho mục đích này. Bạn có thể dễ dàng sử dụng trình duyệt của bạn DeveloperTools -> Console.
Mir-Ismaili

2

Sử dụng mã% Ascii của ký tự đặc biệt trong ký hiệu thập lục phân cho bất kỳ ký tự đặc biệt nào. Giả sử mật khẩu của tôi là AB @ 12 # và sau đó mật khẩu sẽ được đặt là

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

Tham khảo bảng ascii để biết mã ascii thập lục phân của bất kỳ số nào.



-1

Dựa trên câu trả lời này trên SO , bạn có thể thử sử dụng ^ để thoát biểu tượng @ không?


Để đáp ứng với cả hai, tập hợp thành công, đó là công cụ sử dụng biến môi trường: set http_proxy=http://foo:B^@r@http-gateway.domain.org:80 jruby -S gem install rakeERROR: Trong khi thực thi gem ... (URI :: UnlimitedURIError), lược đồ http không chấp nhận phần đăng ký: foo: B @ r @ http- gateway.domain.org:80 (hoặc tên máy chủ xấu?)
pyropenguin

Đây là câu hỏi dựa trên Linux, không phải câu hỏi dựa trên Windows, sử dụng ^ không hoạt động đối với tôi. Tôi vẫn nhận được wget: unable to resolve host address tf4ce @ server.company.com'` sau khi đặt biến môi trường proxy.
Philluminati

2
Trên thực tế, đây là một câu hỏi dựa trên Windows ... Tôi biết cá nhân pyropenguin.
Mike Cornell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.