从PHP连接到ASP.Net Web服务并检索数据为JSON

问题描述:

我在使用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

可能是该Web服务以Json格式获取发布数据。如果是,那么你应该使用

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

的细节json_encode

+0

你是对的。我手动编码了一个JSON字符串,响应是我需要的数据。谢谢 – user756700 2011-05-17 05:14:49