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

时间:2011-05-17 04:20:33

标签: php asp.net web-services json

我在使用PHP连接到ASP.Net Web服务时遇到问题。

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]

在PHP中将Content-Type设置为“application / json; charset = utf-8”,我们尝试使用PHP中的以下POST数据发送名为“birthday”的参数:

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

我认为ASP网络服务由于某种原因无法解析'birthday'参数,但我不确定为什么。

在调用Web服务之前,是否需要在PHP中将POST数据显式编码为JSON?

感谢。

1 个答案:

答案 0 :(得分:4)

可能是这个Web服务采用Json格式的发布数据。如果是,那么你应该使用

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

了解详情json_encode