【问题标题】:Connecting to an ASP.Net web service from PHP and retrieving data as JSON从 PHP 连接到 ASP.Net Web 服务并以 JSON 格式检索数据
【发布时间】:2011-05-17 04:20:32
【问题描述】:

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

已知该网络服务是可操作的,因为当我们使用来自同一域的 Javascript 进行连接时,它会返回数据,但是当我尝试使用 PHP 进行连接时,我收到以下错误:


HTTP/1.1 500 内部服务器错误内容类型:应用程序/json; charset=utf-8 服务器:Microsoft-IIS/7.5 jsonerror:true X-Powered-By:ASP.NET 日期:2011 年 5 月 17 日星期二 03:40:17 GMT 连接:关闭 内容长度:819 {“消息”:“无效的 JSON 原语:生日。”,“StackTrace”:“在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\ [等等]

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

$post_data = 数组( '生日' => '无' );

我认为 ASP Web 服务由于某种原因无法解析“生日”参数,但我不确定为什么。

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

谢谢。

【问题讨论】:

  • 您可以尝试使用Fiddler 或WireShark 比较工作代码和非工作代码,观察通过网络传输的数据,看看是否有任何差异。
  • 是javascript POSTing 还是使用get?你能提供有效的javascript吗

标签: php asp.net web-services json


【解决方案1】:

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

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

详情json_encode

【讨论】:

  • 你是对的。我手动编码了一个 JSON 字符串,响应是我需要的数据。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 2012-07-13
相关资源
最近更新 更多