如何从php中调用soap web服务
问题描述:
我能够在我的chrome中使用wizdler使用soap web服务,但需要如何在php代码中使用它。 从Wizdler我能得到适当的反应,例如我张贴这样的信息: 如何从php中调用soap web服务
的问题是如何从PHP代码调用这个服务,我做了什么/努力迄今:
<?php
$wsdl = "http://64.20.37.90/VTWebServiceTest/VisualService.svc?wsdl";
$client = new SoapClient($wsdl);
$request_param = array(
"storeNumber" => "valid value",
"enterpriseId" => "valid value",
"credential" => "valid value"
);
try {
$responce_param = $client->GetCategories($request_param);
$result = $responce_param->GetCategoriesResult;
print_r($result);
} catch (Exception $e) {
echo "Exception Error!";
echo $e->getMessage();
}
?>
但它总是返回消息“12 |无效的服务凭证”。
有人可以帮我吗?
在此先感谢。
答
也许试试这个...
$responce_param = $client->GetCategories($request_param);
print_r($responce_param);
甚至
$responce_param = $client->GetCategories($request_param);
$values = get_object_vars($responce_param);
$myresults = object_to_array($values);
print_r($myresults);
“无效的服务凭据” 可能劲歌您的凭证无效。如何确定您使用的是有效参数?您是否以另一种方式(如使用SoapUI)测试SOAP调用? –
我认为Felippe是正确的,我试过这是SOAPUI并得到相同的错误。 我认为这需要一个有效的值....“credential”=>“有效值” –
谢谢Felippe和Mike。通过使用Chrome扩展“wizdler”来调用api,我可以得到正确的响应。我猜测通过SoapClient发送请求时请求格式有问题。正如你在我的问题中看到的那样,信封已经通过了Wizdler。我不确定什么请求格式SoapClient将接受。我甚至通过发送XML来尝试,但没有运气。 –