1
tl; dr:發送多個字符串作爲對SOAP請求的響應。在PHP中通過SOAP返回多個值
我是新來的SOAP。我寫了一個簡單的Web服務,它通過SOAP爲請求提供服務。因爲我想在PHP中實現這一點,所以我使用了NuSOAP庫。給我的SOAP API設計規範如下。
REQUEST FORMAT:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.sandeepraju.in/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<q0:getData>
<token>String</token>
</q0:getData>
</soapenv:Body>
</soapenv:Envelope>
實施例/示例響應:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getDataResponse xmlns:ns2="http://www.sandeepraju.in/">
<return>
<Data>
<animal>cat</animal>
<phone>225</phone>
<code>FYI</code>
</Data>
我爲上述說明書的書面PHP代碼如下。
require_once("../nusoap_old/lib/nusoap.php");
// Definition of getData operation
function getData($token) {
if($token == "somestring") {
return array("animal" => "cat", "phone" => "225", "code" => "FYI");
}
else {
return array("animal" => "null", "phone" => "null", "code" => "null");
}
}
// Creating SOAP server Object
$server = new soap_server();
// Setup WSDL
$server->configureWSDL('catnews', 'urn:catinfo');
$server->wsdl->addComplexType('return_array_php',
'complexType',
'struct',
'all',
'',
array(
'animal' => array('animal' => 'animal', 'type' => 'xsd:string'),
'phone' => array('phone' => 'phone', 'type' => 'xsd:string'),
'code' => array('code' => 'code', 'type' => 'xsd:string')
)
);
// Register the getData operation
$server->register("getData",
array('token' => 'xsd:string'),
array('return' => 'tns:return_array_php'),
'urn:catinfo',
'urn:catinfo#getData');
// Checking POST request headers
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA : "";
$server->service($HTTP_RAW_POST_DATA);
在這裏,我想我應該不返回一個PHP數組。但我不確定我應該按照規範返回什麼。誰能幫我這個。或者返回一個數組是正確的?
我想說這取決於Nusoap如何處理它。我特別不瞭解Nusoap,所以除此之外,我不能有太多的幫助。也許這是他們的文檔中概述的? – hakre
是的你是對的。我沒有發現NuSoup的很多文檔。我想我有一個解決方案。我必須測試它。我說的沒錯,明天我會在這裏更新,以便其他人在面臨同樣的問題時可以使用它。 :) –
如果您找到解決方案(甚至只是中途解決),請將其作爲下面的答案。你甚至可以接受它。這在這個網站上完全有效,非常受歡迎。對不起,我沒有更多的幫助。 – hakre