繁体   English   中英

PHP SoapClient-如何获取对服务器的请求和响应

[英]PHP SoapClient - how to get request to server and response

我尝试在PHP中创建用于与WS-Security通信的脚本(首次):

require ('WSSoapClient.php');
$soapclient = new WSSoapClient('https://katastr.cuzk.cz/trial/dokumentace/ws22/wsdp/vyhledat_v22.wsdl');
$soapclient->__setUsernameToken('username', 'password');
$params = array('katastrUzemiKod'=>693936, 'kmenoveCislo'=>1385);
$response = $soapclient->__soapCall('najdiParcelu', $params);
var_dump($response);

这个脚本失败了:

PHP致命错误:未捕获的SoapFault异常:[wsse:InvalidSecurity]根据安全策略验证消息时发生错误/home/jura/bin/WSSoapClient.php中的错误代码:1000:75

有什么办法可以看到,该脚本确切发送到服务器什么,响应是什么?

问题是$ soapclient-> __ setUsernameToken('username','password')函数需要第三个参数'PasswordDigest'或'PasswordText'。

WSSoapClient类对此进行了错误处理。 如果passwordType参数丢失,它确实应该引发异常。 它试图做的是这样的:

// $this->generateWSSecurityHeader() returns an empty string if 3rd parameter missing.

$this->__setSoapHeaders($this->generateWSSecurityHeader());

如果PHP像我一样处于严格模式,您将收到以下警告:

PHP警告:SoapClient :: __ setSoapHeaders():无效的SOAP标头...

警告:SoapClient :: __ setSoapHeaders():无效的SOAP标头...

您需要弄清楚密码类型,并将其作为第三个参数传递给setUsernameToken()函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM