2012-07-25 156 views
1

我使用curl開發PHP站點連接到一個端口地址,但它僅適用我的本地服務器上,而不是在現場server.It返回錯誤「無法連接主機」通過捲曲和PHP

CURL安裝在實時服務器上,我測試過了。

SSL已安裝Live服務器上,我連接到端口9301使用curl

即; HTTP://xx.xxx.xx.xxx:9301 /測試。

這裏是我的代碼:

$request = 'http://xx.xxx.xx.xxx:9301/test'; 
    // The request parameters 
    $context = 'something'; 

    // urlencode and concatenate the POST arguments 
    $postargs = 'xmlRequest='.urlencode($context); 
    $session = curl_init($request); 
    // Tell curl to use HTTP POST 
    curl_setopt ($session, CURLOPT_POST, true); 
    // Tell curl that this is the body of the POST 
    curl_setopt($ch, CURLOPT_PORT, '9301'); 


    curl_setopt ($session, CURLOPT_POSTFIELDS, $postargs); 
    // Tell curl not to return headers, but do return the response 
    curl_setopt($session, CURLOPT_HEADER, false); 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 

    $response = curl_exec($session); 
    //echo curl_getinfo($session); 
    echo $err = 'Curl error: ' . curl_error($session); 
    curl_close($session); 
    echo $response; 

從我的測試很顯然,我無法連接到通過捲曲端口地址。爲了連接到端口地址,需要更改任何服務器設置?

+1

您正在使用ssl,但您的地址以「http」開頭? – Tomer 2012-07-25 10:01:56

+0

可能是因爲您的主機的防火牆阻止了該端口,您可能需要檢查它們。編輯:也可能是您的主機拒絕沒有用戶代理存在的請求。 – Crisp 2012-07-25 10:41:33

回答

7
curl_setopt($ch, CURLOPT_PORT, '9301'); 

這就是你的問題。在你的情況下,句柄不是$ch,而是$session

只是我猜錯了。

一般情況下:確保在開發過程中顯示ALL錯誤。記錄它們或將它們放在屏幕上。 你會很容易地抓住這個。