【发布时间】:2012-05-15 11:50:41
【问题描述】:
我有一个标准 SOAP 的 .net Web 服务,并且我已经添加了 POST/GET 功能。在 .net 中,我可以毫无问题地使用 Web 服务,并且在使用测试 POST 页面时,我也可以成功使用 Web 服务。我收到了 php 开发人员的请求,要求使用我认为完全没有问题的 Web 服务,但是他无法获得成功的结果。我从来没有使用过 PHP,所以我没有一个测试项目,我什至可以将它用于 php 方面。我相信这是他用过的第一个网络服务,所以他自己并没有太多经验。
所以我的问题是:
1) 作为一名 .net 开发人员,我什至不知道如何开始研究这个问题。我不知道这是我的网络服务有问题还是他的 php 代码有问题。因为 .net 和 POST 工作,我倾向于相信这是他的代码中的东西,但是我无法测试,因为我不知道 php。
2) 是否有一些标记或我需要做的事情才能让 php 正确使用我的服务?
3) 有什么工具可以用来检查与 php 的兼容性吗?
4) 有PHP知识的人可以看看他的代码,看看有没有明显的问题吗?
已解决: 请参阅答案中的工作代码。
【问题讨论】:
-
使用
echo $client->__getLastRequest();并显示它打印的内容。具体来说,检查请求中是否存在三个输入参数。 -
@MrCode 我尝试了这个,使用 PHP 脚本测试页面 (writecodeonline.com/php),结果如下:1db1c37d-b181-443e-8cfb-c4574c1245d955184d93-771a-44d1-ba7a-fd02fe1e15f5。显然那里只有 2 个向导。当然,这似乎是问题所在。你发现数组解密代码有什么问题吗?
-
__getLastRequest()应该为您提供请求的整个 XML。您可能需要查看源代码才能在浏览器中看到它(因为它可能会隐藏 xml)。用完整的 XML 请求更新问题,这样我们就可以看到整个事情。 -
@MrCode 对不起,请参阅xml请求代码的原始问题。它显然缺少 1 个参数。它似乎正在删除第一个声明的参数 VendorID。有什么想法吗?
-
@MrCode 我搞定了!我开始研究soap xml并查找更多的php代码,我能够将工作代码拼凑在一起。
标签: php .net web-services