2016-03-02 93 views
-1

我正在用PHP開發一個小型網站。該網站正在發送REST curl請求以從後端系統獲取和發佈數據。PHP:POST REST CALL不能在Redhat的AMAZON EC2上工作

我開始在我的電腦上使用LAMP環境開發這個網站。 我所有的CURL調用在LAMP環境中都運行良好。

由於我不得不把這個網站提供給某個人,所以我把它推到了AMAZON EC2上,在一個Redhat實例上,我安裝了Apache2和Php5。

我的問題是,雖然GET調用在亞馬遜上工作,但我所有的POST調用都沒有。看起來,後端系統不會收到POST調用,並且不會返回任何消息。

這是我使用(這又是工作,從我的本地罰款)的PHP代碼的樣本:

$urlwebbehavior = 'https://'.$domain.'/api/inbound/activity?access_token='.$tokenServer.'&member_id='.$memberid.'&type=web_behavior&action_type=Page%20View&page='.$pageurl; 

$ch5 = curl_init(); 

curl_setopt($ch5, CURLOPT_URL, $urlwebbehavior); 
curl_setopt($ch5, CURLOPT_POST, true); 
curl_setopt($ch5, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch5, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch5, CURLOPT_HTTPHEADER, array('Accept:application/vnd.backend-v1+json')); 

$result5 = curl_exec($ch5); 
$curlErrno = curl_errno($ch5); 

if($curlErrno){ 
    $curlError = curl_error($ch5); 

    throw new Exception($curlError); 
} 

curl_close($ch5); 

我首先想到的是與EC2的一個問題。我通過使用來自Amazon的命令行的等效curl請求進行測試,並且它工作正常。所以我認爲EC2不是問題。 它可能是Apache配置或其他東西。

在此先感謝您的幫助。

Baocrazy

+0

是的。我直接從amazon實例運行curl命令,它工作正常。此外,網站代碼還包含一些使用curl的GET調用。 – Baocrazy

+0

var_dump(extension_loaded('curl'));返回bool(true)。 – Baocrazy

+0

var_dump $ result5返回字符串(0)「」 – Baocrazy

回答

0

你是不是在發送數據後,而把他們作爲查詢字符串(獲取)。而不是發送他們在查詢字符串,發送它們如下:

curl_setopt($ch5, CURLOPT_POSTFIELDS, $data);