使用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