2012-10-01 58 views
3

我有一個VB.net桌面應用程序通過發送WebRequest的一個PHP的Web服務器:PHP程序發佈JSON

Dim result_post = SendRequest(New Uri(strURL), data, "application/json", "POST") 

的數據使用JSON Newtonsoft編碼過程

我有一個問題是編碼在PHP端檢索發佈的json。

$data = file_get_contents('php://input'); 
//$data = '[{"products_model":"2481-5-50","products_name":"2481-5-50 Desk, Maple with an extended d","products_description":"Desk, Maple with an extended description\rAnd this is line 2","products_quantity":112,"products_date_available":"2009-07-08T00:00:00","products_url":"","fc_products_id":0,"updated":"2012-04-15T00:00:00","products_price":1109.95,"ImageFile":"","products_tax_class_id":1,"products_weight":0.00}]'; 

$json = json_decode($data, true); 
Foreach ($json as $i => $row) { 
    //sql insert code goes here 
} 

如果我把json文本放在php文件中,sql插入代碼就可以工作。當我使用file_get_contents版本時,我沒有得到任何錯誤,但也沒有插入數據。

我錯過了什麼?

+0

var_dump($ data)'顯示什麼? – Barmar

+0

我在result_post中看到的響應是登錄頁面的html,我已經提交了該用戶和密碼,獲得了另一個webrowser.documentcompleted事件,併發布了json。這個設置工作正常,從php頁面檢索json數據。 –

+0

我的vb.net代碼是基於這個職位:http://stackoverflow.com/questions/7384534/how-to-post-a-json-to-a-specific-url-using-vb-net –

回答

1

您可以檢查是否$HTTP_RAW_POST_DATA包含您正在查找的信息。如果你的ini設置中有always_populate_raw_post_data設置爲true,那麼輸入流可能已經被讀入這個變量。

+0

相同的否錯誤但沒有數據插入的行爲... –

+0

你在'$ HTTP_RAW_POST_DATA'或'$ data'的var_dump上得到什麼?作爲'$ json'的var_dump獲得什麼? –

+0

當我從vb.net程序發佈時,我沒有得到任何形式的var_dump - 請參閱上面的註釋。 –