使用cURL执行HTTP请求(使用PROXY)

我有这个代理地址: 125.119.175.48:8909 : 125.119.175.48:8909

我如何使用curl http://www.example.com使用cURL来执行HTTP请求,但指定我的networking的代理地址?

一般方法:

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

然后你可以通过代理从(很多)应用程序连接。

而且,根据下面的评论,对于https:

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

man curl

 -x, --proxy <[protocol://][user:password@]proxyhost[:port]> Use the specified HTTP proxy. If the port number is not specified, it is assumed at port 1080. 

上述解决scheme可能不适用于我自己尝试的一些curl版本(curl7.22.0)。 但是对我来说有效的是:

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

希望能更好的解决这个问题!

请注意,如果您使用的是SOCKS代理,而不是HTTP / HTTPS代理,则需要使用--socks5开关:

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

作为airween的一个补充,另一个好主意是将其添加到.bashrc中,以便您能够从非代理切换到代理环境:

 alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'" alias proxyoff="export http_proxy='';export https_proxy=''" 

在哪里YOURPROXY:YOURPORT就是这样,你的IP和端口代理:-)。

然后,干脆

 proxyon 

你的系统将开始使用代理,而恰恰相反:

 proxyoff 

您可以使用 :

 curl http://www.example.com --proxy http://125.119.175.48:8909 

正如卡尔所解释的那样

使用以下内容

curl -I -x 192.168.XX:XX http://google.com

192.168.XX:XX把你的代理服务器的IP和端口。

-v详细模式,它会给更多的细节,包括头和响应。

对于curl您可以通过添加proxy值在您的~/.curlrc文件中configuration代理,语法是:

 proxy = http://username:password@proxy-host:port 

如果您只是为一次性命令设置代理,则不需要导出http[s]_proxy shellvariables。 例如

 http_proxy=http://your.proxy.server:port curl http://www.example.com 

也就是说,如果我知道我总是要使用代理,我更喜欢curl -x

使用身份validation代理我使用:

 curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url> 

因为,我不知道curl为什么不使用/ catch http [s] _proxy环境variables。

我喜欢用这个来获得我所见到的IP

 curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo 

希望这有助于某人。

如果代理使用PAC文件的自动代理。 我们可以从PACurl的javascript中find实际的代理。

如果代理需要authentication,我们可以先使用普通的网页浏览器访问网站,这样会促进authentication对话。 authentication之后,我们可以使用wireshark来捕获http包发送到代理服务器,从http包中,我们可以从http头获得auth令牌: Proxy-Authorization

然后,我们可以设置http_proxy环境variables,并在http头中包含auth令牌: Proxy-Authorization

导出http_proxy = http://代理服务器:端口

curl -H“代理授权:xxxx” http:// targetURL