Come utilizzare caratteri speciali in nome utente / password per proxy HTTP?


26

Sto provando a configurare un proxy HTTP su un computer Windows. Il problema è che la password contiene un carattere speciale (@) che causa il setfallimento del comando.

Ho provato sia a sfuggire al carattere ( \@) sia a codificarlo in percentuale con il valore esadecimale ( %40), senza alcun risultato.

Ad esempio, con il nome utente Foo e la password B @ r, ho provato i seguenti comandi:

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

Oltre a modificare la password, come posso fare in modo che il proxy usi la password?


Il set non funziona o lo strumento che utilizza la variabile di ambiente http_proxy non funziona a causa del simbolo @?
Mike Cornell,

Sì. Perché il formato è username: password @ server: port, avendo @ nel mezzo della password fa sì che il lato destro della password venga considerato il nome host, quindi la risoluzione del nome host sopra fallisce perché pensa che il nome host sia r @ http- gateway.domain.org. "R @" non dovrebbe essere lì.
Philluminati,

2
Ho provato a usare% 40 e ha funzionato (su Windows), sei sicuro?
thegreendroid,

In effetti, funziona su Windows e Linux (Ubuntu).
thegreendroid,

Risposte:


29

Devi codificare in percentuale | codificare i caratteri speciali. Ad esempio invece di questo:

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

scrivi questo:

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

Quindi @viene sostituito con %40.


2
la codifica è davvero il modo per aggirare questo problema (e molti altri).
HTDutchy, l'

ho scoperto che dovevo raddoppiare la codifica di alcuni personaggi
dovidweisz,

1
Suggerisco semplicemente di utilizzare JavaScript encodeURIComponent()a questo scopo. Puoi usare facilmente il tuo browser DeveloperTools -> Console.
Mir-Ismaili,

2

Utilizzare il codice% Ascii del carattere speciale in notazione esadecimale per qualsiasi carattere speciale. Supponiamo che la mia password sia AB @ 12 # e che la password debba essere impostata come

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

Fare riferimento alla tabella ASCII per conoscere il codice ASCII esadecimale di qualsiasi numero.



-1

Sulla base di questa risposta su SO , puoi provare a usare ^ per sfuggire al simbolo @?


In risposta a entrambi, il set ha esito positivo, è lo strumento che utilizza la variabile di ambiente: set http_proxy=http://foo:B^@r@http-gateway.domain.org:80 jruby -S gem install rakeERRORE: Durante l'esecuzione gem ... (URI :: InvalidURIError) lo schema http non accetta la parte del registro: pippo: B @ r @ http- gateway.domain.org:80 (o nome host
errato

Questa è una domanda basata su Linux, non una domanda basata su Windows, l'uso di ^ non funziona per me. Ottengo ancora wget: unable to resolve host address tf4ce @ server.company.com '' dopo aver impostato la variabile ambientale proxy.
Philluminati,

2
In realtà è una domanda basata su Windows ... Conosco personalmente il piropinguino.
Mike Cornell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.