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

发布于 2024-11-07 08:07:05 字数 818 浏览 0 评论 0原文

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

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

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

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

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

谢谢。

I'm having issues connecting to an ASP.Net web service using PHP.

The web service is known to be operational, since it's returning data when we connect using Javascript from the same domain, but when I attempt to connect using PHP I receive the following error:


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]

The Content-Type is set to "application/json; charset=utf-8" in PHP, and we are trying to send a parameter called "birthday" using the following POST data in PHP:

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

I think the ASP web service is not able to parse the 'birthday' parameter for some reason, but I'm not sure why.

Do I need to explicitly encode the POST data as JSON from PHP before calling the web service?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戏剧牡丹亭 2024-11-14 08:07:05

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

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

json_encode 来了解详细信息

May be this web service takes the post data in Json format. If it is then you should use

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

for details json_encode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文