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()。