通过soapui通过soapui处理XML但不通过PHP的SOAP
问题描述:
我正在使用PHP创建一个SOAP客户端,并且遇到了使用问题。当我使用soapui测试请求直接XML时,它响应良好并且可以正常工作,但是使用SoapClient类的PHP可以告诉我在soapui中使用的凭据是不正确的。通过soapui通过soapui处理XML但不通过PHP的SOAP
不知道我在这里失踪。我下面 代码下面是我的XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pric="http://upshot.co.uk/pricing_request_ws">
<soapenv:Header/>
<soapenv:Body>
<pric:retrieveProductsPricing>
<username>apiuser</username>
<password>pword</password>
<postcode>EC2R 7HP</postcode>
</pric:retrieveProductsPricing>
</soapenv:Body>
</soapenv:Envelope>
下面是我的PHP
$wsdl = "http://URL?wsdl";
$client = new SoapClient($wsdl, array('trace'=>1));
try
{
$options = array(
'soap_version'=>SOAP_1_2,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE
);
$params = array(
'User name' => 'apiuser',
'Password' => 'pword',
'Postcode' => 'EC2R 7HP'
);
$response = $client->retrieveProductsPricing($params);
print_r($response);
}
catch(SoapFault $e)
{
print_r($e);
这是我第一次配置SOAP客户端,所以我敢肯定,我在这都可能犯了一个错误。
答
看一看第一个代码:
<username>apiuser</username>
<password>pword</password>
<postcode>EC2R 7HP</postcode>
你应该使用相同的密钥对数组
$params = array(
'username' => 'apiuser',
'password' => 'pword',
'postcode' => 'EC2R 7HP'
);
+0
啊,当然,缺乏专注!感谢那! – mrlew
是'用户name'意思是'用户名'或'用户名'? – Yolo