2013-11-26 53 views
0

我一直在努力解決以下問題幾天。我希望從某個第三方公司收到有關某些實時事件的POST數據。我一直與他們聯繫,爲什麼我的劇本沒有看到任何東西。不幸的是,他們不太有用,只是告訴我「它適用於其他人」。處理來自第三方的POST數據

在網上做了一些研究之後,我設置了一個簡單的PHP腳本,但它始終顯示沒有發佈數據。這不是我的專業領域,所以我可能會錯過某些明顯的東西。

以下是他們提供的唯一文檔: 此API將在每個成功事件和所有轉換數據發送一個實時http請求。數據通過http POST方法發送,數據爲JSON格式。

這是我的腳本,現在正試圖將它記錄到文件中。該文件已創建,我可以看到請求的IP地址,但輸出在發佈數據方面是空的。

ob_start(); 
    echo "Request from :" . $_SERVER[REMOTE_ADDR]; 
    echo "print_r:".print_r($_POST,true); 
    if(array_key_exists('app_id', $_POST))// me attempting to access a specific key they claim is in the post data 
    { 
     echo "app id = " . $_POST['app_id']; 
    } 
    //I also tried both of these and neither output anything 
    //foreach ($_POST as $key => $value) //idea 1 
    foreach($_POST as $item) //idea 2 
    { 
     //echo "key=".$key." value=".$value; //idea 1 log 
     echo "next=";//idea 2 log 
     echo $item; 
    } 
    $contents = ob_get_flush(); 
    file_put_contents("log.txt",$contents,FILE_APPEND); 

回答

1

這裏沒有很多在這裏去 - 誰知道客戶端實際發送 - 但這裏有一個想法:

POST只是一個HTTP命令。傳統上POST的主體是來自表單的一系列鍵值對,但實際上並非必要。遠程客戶端可能會向您的服務器發出POST請求,然後在請求正文中提供JSON blob,這將無法成功解析到$ _POST數組中。

我建議在How to get body of a POST in php?上查看答案,看看是否有助於揭示這個問題。

+0

這就是它!非常感謝! – user2292539

相關問題