จะใช้อักขระพิเศษในชื่อผู้ใช้ / รหัสผ่านสำหรับพร็อกซี HTTP ได้อย่างไร


26

ฉันกำลังพยายามตั้งค่าพร็อกซี HTTP บนเครื่อง Windows ปัญหาคือรหัสผ่านมีอักขระพิเศษ (@) อยู่ในนั้นทำให้setคำสั่งล้มเหลว

ฉันได้ลองทั้งการหลบหนีตัวละคร ( \@) และการเข้ารหัสร้อยละด้วยค่าฐานสิบหก ( %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

ใช่. เนื่องจากรูปแบบคือชื่อผู้ใช้: รหัสผ่าน @ เซิร์ฟเวอร์: พอร์ตการมี @ อยู่ตรงกลางรหัสผ่านของคุณทำให้ด้านขวามือของรหัสผ่านของคุณถูกพิจารณาว่าเป็นชื่อโฮสต์ดังนั้นการแก้ปัญหาชื่อโฮสต์ด้านบนจึงล้มเหลวเนื่องจากคิดว่าชื่อโฮสต์คือ r @ http- gateway.domain.org "r @" ไม่ควรอยู่ที่นั่น
Philluminati

2
ฉันลองใช้% 40 และใช้งานได้ (บน Windows) คุณแน่ใจหรือไม่
thegreendroid

ในความเป็นจริงมันทำงานได้ทั้งบน Windows และ Linux (Ubuntu)
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
ฉันแนะนำเพียงแค่ใช้ javascript encodeURIComponent()เพื่อจุดประสงค์นี้ DeveloperTools -> Consoleคุณสามารถใช้เบราว์เซอร์ของคุณ
Mir-Ismaili

2

ใช้รหัส% Ascii ของอักขระพิเศษในรูปแบบเลขฐานสิบหกสำหรับอักขระพิเศษใด ๆ สมมติว่ารหัสผ่านของฉันคือAB @ 12 #จากนั้นควรตั้งรหัสผ่านเป็น

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

อ้างถึงตาราง ascii สำหรับการรู้รหัสเลขฐานสิบหกของหมายเลขใด ๆ


1

สำหรับอักขระพิเศษใด ๆ ในชื่อผู้ใช้หรือรหัสผ่านเราสามารถใช้สตริงเข้ารหัส UTF-8 ได้ตลอดเวลา ตัวอย่างเช่น: ! สามารถถูกแทนที่ด้วย% 21

ดังนั้นคำสั่งจะเป็นถ้ารหัสผ่านเป็น abc!:

กำหนดค่าพร็อกซีการกำหนดค่า npm http: // ผู้ใช้: abc%21@proxy.world.com: 8080 /

การกำหนดค่า npm config https-proxy http: // ผู้ใช้: abc%21@proxy.world.com: 8080 /


-1

จากคำตอบของSOคุณสามารถลองใช้ ^ เพื่อหลีกเลี่ยงสัญลักษณ์ @ ได้หรือไม่?


ในการตอบกลับทั้งสองชุดการตั้งค่าเสร็จสมบูรณ์เป็นเครื่องมือที่ใช้ตัวแปรสภาพแวดล้อม: set http_proxy=http://foo:B^@r@http-gateway.domain.org:80 jruby -S gem install rakeข้อผิดพลาด: ขณะดำเนินการพลอย ... (URI :: InvalidURIError) แบบแผน http ไม่ยอมรับส่วนของรีจิสทรี: foo: B @ r @ http- gateway.domain.org:80 (หรือชื่อโฮสต์ไม่ดี?)
pyropenguin

นี่เป็นคำถามที่ใช้ Linux ไม่ใช่คำถามที่ใช้ Windows การใช้ ^ ไม่ได้ผลสำหรับฉัน ฉันยังได้รับ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.