SOAP 客户端
SoapClient
级配备了 __call
方法。这不是直接调用的。相反,这允许你做:
$soap->requestInfo(['a', 'b', 'c']);
这将调用 requestInfo
SOAP 方法。
可能的 $options
值表( 键/值对数组 ):
选项 | 细节 |
---|---|
地点 | SOAP 服务器的 URL。在非 WSDL 模式下是必需的。可以在 WSDL 模式下使用以覆盖 URL。 |
URI |
SOAP 服务的目标名称空间。在非 WSDL 模式下是必需的。 |
样式 | 可能的值是 SOAP_RPC 或 SOAP_DOCUMENT 。仅在非 WSDL 模式下有效。 |
使用 | 可能的值是 SOAP_ENCODED 或 SOAP_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_GZIP 或 SOAP_COMPRESSION_DEFLATE 。例如:SOAP_COMPRESSION_ACCEPT \| SOAP_COMPRESSION_GZIP 。 |
编码 | 内部字符编码(TODO:可能的值) |
跟踪 | 布尔值,默认为 FALSE 。启用对请求的跟踪,以便可以回溯故障。可以使用 __getLastRequest() ,__getLastRequestHeaders() ,__getLastResponse() 和 __getLastResponseHeaders() 。 |
类映射 | 将 WSDL 类型映射到 PHP 类。值应该是一个数组,其中 WSDL 类型为键,PHP 类名称为值。 |
例外 | 布尔值。应该是 SOAP 错误异常(类型为`SoapFault)。 |
连接超时 | 连接到 SOAP 服务的超时(以秒为单位)。 |
类型表 | 数组映射的数组。数组应该是键/值对,具有以下键:type_name ,type_ns (名称空间 URI),from_xml (回调接受一个字符串参数)和 to_xml (回调接受一个对象参数)。 |
cache_wsdl | 如何(如果有的话)缓存 WSDL 文件。可能的值是 WSDL_CACHE_NONE ,WSDL_CACHE_DISK ,WSDL_CACHE_MEMORY 或 WSDL_CACHE_BOTH 。 |
用户代理 | 要在 User-Agent 标头中使用的字符串。 |
stream_context | 上下文的资源。 |
特征 | SOAP_SINGLE_ELEMENT_ARRAYS ,SOAP_USE_XSI_ARRAY_TYPE ,SOAP_WAIT_ONE_WAY_CALLS 的位掩码。 |
活着 | ( PHP 版本> =仅 5.4 ) 布尔值。发送 Connection: Keep-Alive 标头(TRUE )或 Connection: Close 标头(FALSE )。 |
ssl_method | ( PHP 版本> =仅限 5.5 )要使用的 SSL / TLS 版本。可能的值是 SOAP_SSL_METHOD_TLS ,SOAP_SSL_METHOD_SSLv2 ,SOAP_SSL_METHOD_SSLv3 或 SOAP_SSL_METHOD_SSLv23 。 |
32 位 PHP 的问题 : 在 32 位 PHP 中,大于 32 位的数字字符串由
xs:long
自动转换为整数将导致它达到 32 位限制,将其转换为2147483647
。要解决此问题,请将字符串转换为 float,然后再将其传递给__soapCall()
。