SOAP 客户端

SoapClient 级配备了 __call 方法。这不是直接调用的。相反,这允许你做:

$soap->requestInfo(['a', 'b', 'c']);

这将调用 requestInfo SOAP 方法。

可能的 $options 值表( 键/值对数组 ):

选项 细节
地点 SOAP 服务器的 URL。在非 WSDL 模式下是必需的。可以在 WSDL 模式下使用以覆盖 URL。
URI SOAP 服务的目标名称空间。在非 WSDL 模式下是必需的
样式 可能的值是 SOAP_RPCSOAP_DOCUMENT。仅在非 WSDL 模式下有效。
使用 可能的值是 SOAP_ENCODEDSOAP_LITERAL。仅在非 WSDL 模式下有效。
soap_version 可能的值为 SOAP_1_1默认值 )或 SOAP_1_2
认证 启用 HTTP 身份验证。可能的值为 SOAP_AUTHENTICATION_BASIC默认值 )或 SOAP_AUTHENTICATION_DIGEST
登录 HTTP 身份验证的用户名
密码 HTTP 身份验证的密码
proxy_host 使用 代理服务器的 URL
代理端口 代理服务器端口
proxy_login 代理的用户名
PROXY_PASSWORD 代理密码
local_cert HTTPS 客户端证书的路径(用于身份验证)
密码 HTTPS 客户端证书的密码
压缩 压缩请求/响应。值是 SOAP_COMPRESSION_ACCEPT 的一个位掩码,有 SOAP_COMPRESSION_GZIPSOAP_COMPRESSION_DEFLATE。例如:SOAP_COMPRESSION_ACCEPT \| SOAP_COMPRESSION_GZIP
编码 内部字符编码(TODO:可能的值)
跟踪 布尔值,默认为 FALSE。启用对请求的跟踪,以便可以回溯故障。可以使用 __getLastRequest()__getLastRequestHeaders()__getLastResponse()__getLastResponseHeaders()
类映射 将 WSDL 类型映射到 PHP 类。值应该是一个数组,其中 WSDL 类型为键,PHP 类名称为值。
例外 布尔值。应该是 SOAP 错误异常(类型为`SoapFault)。
连接超时 连接到 SOAP 服务的超时(以秒为单位)。
类型表 数组映射的数组。数组应该是键/值对,具有以下键:type_nametype_ns(名称空间 URI),from_xml(回调接受一个字符串参数)和 to_xml(回调接受一个对象参数)。
cache_wsdl 如何(如果有的话)缓存 WSDL 文件。可能的值是 WSDL_CACHE_NONEWSDL_CACHE_DISKWSDL_CACHE_MEMORYWSDL_CACHE_BOTH
用户代理 要在 User-Agent 标头中使用的字符串。
stream_context 上下文的资源。
特征 SOAP_SINGLE_ELEMENT_ARRAYSSOAP_USE_XSI_ARRAY_TYPESOAP_WAIT_ONE_WAY_CALLS 的位掩码。
活着 PHP 版本> =仅 5.4布尔值。发送 Connection: Keep-Alive 标头(TRUE)或 Connection: Close 标头(FALSE)。
ssl_method PHP 版本> =仅限 5.5 )要使用的 SSL / TLS 版本。可能的值是 SOAP_SSL_METHOD_TLSSOAP_SSL_METHOD_SSLv2SOAP_SSL_METHOD_SSLv3SOAP_SSL_METHOD_SSLv23

32 位 PHP 的问题 在 32 位 PHP 中,大于 32 位的数字字符串由 xs:long 自动转换为整数将导致它达到 32 位限制,将其转换为 2147483647。要解决此问题,请将字符串转换为 float,然后再将其传递给 __soapCall()