我想在我的本地機器上使用轉發代理服務器(Apache Traffic Server或Squid),作爲我的cURL調用的本地HTTP緩存。強制cURL使用GET代理HTTP請求
我已經設置了使用代理:
curl_setopt($ch, CURLOPT_PROXY, 'http://localhost:8080');
當我查詢一個HTTP網站,嫋嫋執行標準的HTTP代理GET
要求,可適當進行緩存:
GET http://example.com/ HTTP/1.1
然而,當查詢HTTPs網站時,cURL會執行CONNECT
,而不是有效地將代理用作TCP隧道,並防止它緩存響應:
CONNECT example.com:80 HTTP/1.1
有沒有辦法強制cURL執行GET
請求甚至HTTP網站?
我可以理解使用TCP通道爲HTTPs請求通過HTTP代理進行安全性的基本原理,但由於我的代理服務器位於本地主機上,因此我不在意使用不安全的HTTP連接到代理,像捲曲執行GET
要求:
GET https://example.com/ HTTP/1.1
我試着使用:
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
但這並沒有改變任何東西。
沒有好辦法AFAIK;你需要一個假SSL證書和一個智能攔截(SOCKS?)代理 - 用它自己的代替目標網站的ssl - 一個例子是telerik.com/fiddler上的Fiddler代理 – hanshenrik
並且你檢查了'curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);'選項? ;) –