2011-05-17 106 views
1

我在使用PHP連接到ASP.Net Web服務時遇到問題。從PHP連接到ASP.Net Web服務並檢索數據爲JSON

Web服務被稱爲是工作,因爲它返回時,我們連接使用Javascript來自同一個域,但是當我嘗試使用PHP我收到以下錯誤連接數據:


 
HTTP/1.1 500 Internal Server Error Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/7.5 jsonerror: true X-Powered-By: ASP.NET Date: Tue, 17 May 2011 03:40:17 GMT Connection: close Content-Length: 819 

{"Message":"Invalid JSON primitive: birthday.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\ 

[etc] 

的內容類型設置爲「申請/ JSON;字符集= UTF-8」在PHP,我們正在嘗試發送一個稱爲參數「生日」使用PHP以下POST數據:

 
$post_data = array(
    'birthday' => 'none' 
); 

我認爲ASP Web服務由於某種原因無法解析'生日'參數,但我不知道爲什麼。

在調用Web服務之前,我需要將POST數據顯式編碼爲PHP中的JSON嗎?

謝謝。

+1

你可以嘗試觀測數據上行駛與'Fiddler'或'WireShark'線比較工作代碼非工作代碼,看看有沒有什麼不同。 – mellamokb 2011-05-17 04:28:20

+0

javascript的發佈還是使用get?你能提供可用的javascript嗎 – 2011-05-17 04:46:41

回答

4

可能是該Web服務以Json格式獲取發佈數據。如果是,那麼你應該使用

$post_data = array('birthday' => 'none'); 
$jsonData = json_encode ($post_data); 

的細節json_encode

+0

你是對的。我手動編碼了一個JSON字符串,響應是我需要的數據。謝謝 – user756700 2011-05-17 05:14:49

相關問題