566 votes

Effectuer des requêtes HTTP avec cURL (en utilisant un PROXY)

J'ai cette adresse de proxy : 125.119.175.48:8909

Comment puis-je effectuer une requête HTTP en utilisant cURL comme curl http://www.example.com, mais en spécifiant l'adresse du proxy de mon réseau ?

778voto

Karl Barker Points 3045

De man curl:

-x, --proxy <[protocole://][utilisateur:mot_de_passe@]hote_proxy[:port]>

     Utilise le proxy HTTP spécifié.
     Si le numéro de port n'est pas spécifié, il est supposé être le port 1080.

0 votes

Curl: (7) n'a pas pu se connecter à l'hôtecurl: (7) n'a pas pu se connecter à l'hôte

0 votes

Je reçois l'erreur ci-dessus lorsque j'exécute cette commande : curl -x, --proxy 122.72.2.200:80 mysite.com/test.php?id=1

79 votes

"-x, --proxy" signifie que l'un ou l'autre peut être utilisé. La commande doit être soit "curl -x 122.72.2.200:80 mysite.com/test.php?id=1" ou "curl --proxy 122.72.2.200:80 mysite.com/test.php?id=1"

486voto

airween Points 1034

Manière générale :

export http_proxy=http://your.proxy.server:port/

Ensuite, vous pouvez vous connecter via un proxy à partir de (nombreuses) applications.

Et, comme mentionné ci-dessous, pour https :

export https_proxy=https://your.proxy.server:port/

80 votes

Lorsque vous avez besoin de faire transiter du trafic HTTPS par proxy, la variable d'environnement est en majuscule: HTTPS_PROXY

24 votes

Depuis les pages de manuel, les variables d'environnement peuvent être spécifiées en minuscules ou en majuscules. La version en minuscules a la priorité. http_proxy est une exception car elle n'est disponible qu'en minuscules. Utiliser une variable d'environnement pour définir le proxy a le même effet que d'utiliser l'option --proxy.

0 votes

@BipinVayalu, que veux-tu vérifier? De cette manière, ce que je décris ci-dessus, le client utilise le proxy "direct way", pas de manière transparente. Ainsi, le proxy renvoie les réponses HTTP standard (y compris les codes HTTP). Si vous exportez une variable d'environnement http_proxy incorrecte (par exemple, un mauvais port...), le client ne pourra pas se connecter, et il affichera un message d'erreur : "Attention ! Impossible de se connecter à l'hôte distant !", ou quelque chose de similaire - essayez simplement :)

162voto

Amar Points 370

Les solutions ci-dessus pourraient ne pas fonctionner avec certaines versions de curl. Je les ai essayées moi-même (curl 7.22.0). Mais ce qui a fonctionné pour moi était :

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

J'espère que cela résoudra le problème de manière plus efficace !

0 votes

Rencontrez le même problème, le curl livré par Debian Wheezy ne supporte toujours pas l'astuce env

0 votes

A obtenu cela à la place [1] 4812

103voto

Filipe Correia Points 727

Attention, si vous utilisez un proxy SOCKS, au lieu d'un proxy HTTP/HTTPS, vous devrez utiliser l'option --socks5 à la place :

curl --socks5 125.119.175.48:8909 http://example.com/

Vous pouvez également utiliser --socks5-hostname au lieu de --socks5 pour résoudre les DNS côté proxy.

7 votes

Cela n'a pas fonctionné pour moi, mais en utilisant --socks5-hostname ça a marché.

2 votes

@MichaRybak cela fonctionnera de la même manière mais résoudra les DNS du côté du proxy. Veuillez consulter la page de manuel pour plus de détails.

3 votes

curl https://api.ipify.org --proxy socks5://189.100.246.182:37339 semble fonctionner correctement pour moi. Est-ce que l'option --proxy est en quelque sorte inférieure à --socks5 lors de l'utilisation de proxies socks5?

59voto

Alejandro Moreno Points 319

En plus d'utiliser airween, une autre bonne idée est d'ajouter ceci dans votre .bashrc, afin de pouvoir basculer d'un environnement non proxy à un environnement proxy :

alias proxyon="export http_proxy='http://VOTREPROXY:VOTREPORT';export https_proxy='http://VOTREPROXY:VOTREPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

OÙ VOTREPROXY:VOTREPORT est exactement cela, votre adresse IP et votre port proxy :-).

Ensuite, en faisant simplement

proxyon

votre système commencera à utiliser le proxy, et exactement le contraire avec :

proxyoff

0 votes

unsetting http_prox ;) !

0 votes

votre système commencera à utiliser le proxy n'est pas tout à fait correct, vous ne commencerez/arrêterez que dans le shell actuel et les sous-shells

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X