2010-11-02 106 views
0

我一直在試圖找到這個答案,似乎無法。從PHP提交簡單POST請求到另一臺服務器的最佳方式是什麼? cURL似乎運行極其緩慢;我得到幾秒鐘的加載,等待cURL。有任何想法嗎?從PHP提交POST請求的最佳方式是什麼?

編輯:根據要求,下面的代碼:

$x = curl_init("http://www.server.com/API.php"); 
    curl_setopt($x, CURLOPT_POST, 1); 
    curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata); 
    $data = curl_exec($x); 
    curl_close($x); 
    echo $data; 

這是,但是,在一個循環。我假設簡單的監督可能是我的問題的根源。

+0

你可以發佈你的cURL代碼嗎? – KeatsKelleher 2010-11-02 21:07:15

+0

你可以發佈你嘗試過的任何代碼嗎? – 2010-11-02 21:07:39

回答

3

套接字有點低平,但非常快。你也可以嘗試HttpRequest:http://php.net/manual/en/function.httprequest-send.php

但是,在我看來,我不認爲它是如此多的cURL作爲您的服務器連接。嘗試設置此日誌,看看有什麼問題:

curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 

並檢查您的DNS設置,你連接到網站。您可以嘗試手動加載頁面,並查看您在連接和瀏覽器上的速度。您也可以嘗試獲取最新版本的cURL以及您使用的任何其他庫。如果您正在進行多個請求,請使用cURL多個句柄,而不是多個單獨的句柄。如果您不需要網頁正文,只需提交一些內容,請將NO_BODY設置爲true,這樣可以減少很多加載時間。最後,嘗試緩存或多線程。

編輯:也嘗試不設置這麼多的標頭或餅乾,那些大量拖動你的速度。如果你真的希望我們能夠很好地解決問題,請發佈你的代碼,我會評論我在哪裏可以獲得改進。順便說一下,如果你的cURL版本中啓用了ipv6,並且不使用它,請將其禁用,我聽說ipv6存在滯後問題。我記得的其他特殊問題包括沒有在服務器上設置反向DNS。

相關問題