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