2013-11-15 84 views
1

我在我的php應用程序中使用curl。它看起來像(簡體):在PHP中使用curl連接重用

$handle = curl_init(); 
curl_exec($handle); 
curl_close($handle); 

寫在Persistence Is The Way to Happiness章,

使用相同的容易處理對同一主機的後續請求可能只是能夠使用已經打開的連接!這大大降低了網絡影響。

那麼,它是否適用於此代碼?將保存連接並curl_init()使用現有連接?如果是 - 他們存放多久?

回答

2

我沒有這個測試自己,但這裏的如何,我認爲它應該工作:

您創建一個捲曲的實例:

$handle = curl_init(); 

然後您設置選項,如URL,該方法(POST或GET)和查詢字符串:

curl_setopt($handle, CURLOPT_URL, "http://stackoverflow.com"); 

執行請求:

curl_exec($handle); // execute the request 

更改選項,例如更改URL:

curl_setopt($handle, CURLOPT_URL, "http://stackoverflow.com/test/"); 

再次執行請求時,它應該能夠重新使用已經打開的連接:

curl_exec($handle); 

你可以做很多次就像你想用相同的curl實例一樣,並且如果可能的話它會重用連接。

最後關閉連接,並刪除捲曲實例時,你就大功告成了:

curl_close($handle); 
+0

後數以百萬計的請求發出過幾天我的PHP 5.6.14凍結的curl_exec這種方式傳播(通過日誌確認, dbg backtrace)。不知道是否因爲連接重用。 – NeverEndingQueue