从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吗?
谢谢。
答
可能是该Web服务以Json格式获取发布数据。如果是,那么你应该使用
$post_data = array('birthday' => 'none');
$jsonData = json_encode ($post_data);
的细节json_encode
+0
你是对的。我手动编码了一个JSON字符串,响应是我需要的数据。谢谢 – user756700 2011-05-17 05:14:49
你可以尝试观测数据上行驶与'Fiddler'或'WireShark'线比较工作代码非工作代码,看看有没有什么不同。 – mellamokb 2011-05-17 04:28:20
javascript的发布还是使用get?你能提供可用的javascript吗 – 2011-05-17 04:46:41