我有一个标准SOAP的.net网络服务,我已经添加了POST / GET功能。在.net中,我可以毫无问题地使用Web服务,在使用测试POST页面时,我也可以成功使用Web服务。我有一个php开发人员请求使用我认为根本不会成为问题的Web服务,但是他无法获得成功的结果。我从来没有使用PHP,所以我没有一个测试项目,我甚至可以用于PHP方面。我相信这是他用过的第一个网络服务,所以他自己没有很多经验。
所以我的问题是:
1)作为一名.net开发人员,我对如何开始研究问题感到困惑。我不知道这是我的网络服务中的问题还是他的PHP代码中的问题。因为.net和POST工作我倾向于相信它是代码中的东西,但是我无法测试因为我不知道php。
2)我是否需要做一些标记或其他事情才能让php正确使用我的服务?
3)我可以使用任何工具来检查与php的兼容性吗?
4)有PHP知识的人可以查看他的代码,看看是否有任何明显的问题吗?
解决: 请参阅答案中的工作代码。
答案 0 :(得分:1)
$function = "soapcall";
$array =array("Param1" => "parameter1", "Param2" => "parameter2", "Param3" => "parameter3");
$client = new SOAPClient(
'http://url.asmx?WSDL',
array(
'location' => 'url.asmx?WSDL',
'trace' => 1,
'style' => SOAP_RPC,
'use' => SOAP_ENCODED,
)
);
$result = $client->__soapCall('soapcall', array("parameters"=>$array));
foreach( $result as $r)
{ print $r."<br>"; }
答案 1 :(得分:0)
与WCF和其他Web服务之间缺乏互操作性 - 这不仅仅是PHP的事情,Java库通常也无法使用WCF Web服务。许多其他SO问题中有更多信息 - 请参见侧栏。
您可以尝试的一件事是SOAPUI(或from sourceforge)以“互动方式”调用您的网络服务,这可以帮助他找出网络服务。
答案 2 :(得分:0)
我们在Php中使用NuSoap进行Web服务调用,效果非常好。
答案 3 :(得分:0)
.NET服务需要有http端点(适配器)。 https://bugs.php.net/bug.php?id=50698
有时您需要获得NTLM授权Call webservice with NTLM authorization