我有一個使用NuSOAP的webService。現在,我必須在返回請求的數據之前進行驗證。如果一切正常,我會正常返回它,否則我想返回一條String消息來解釋爲什麼我不提供所需的信息。問題是我無法添加兩種不同類型的返回到NuSOAP的RegisterFunction。如果我添加一個ComplexType作爲返回,我不能返回一個字符串。用NuSOAP返回兩種類型
0
A
回答
2
該函數不能有兩個返回值。您應該將錯誤消息字符串添加到複雜類型中。如果你不想觸摸你的複雜類型,那麼你應該創建另一個包含你的數據類型和字符串的複雜類型 。
示例 - 複合型,你現在所擁有的:
$server->wsdl->addComplexType('myData','complexType','struct','all','',
array( 'important' => array('name' => 'important','type' => 'xsd:string'),
'stuff' => array('name' => 'stuff','type' => 'xsd:string')
)
);
額外的複雜類型:
$server->wsdl->addComplexType('package','complexType','struct','all','',
array( 'data' => array('name' => 'data','type' => 'tns:myData'),
'errormsg' => array('name' => 'errormsg','type' => 'xsd:string')
)
);
功能的登記:
$server->register(
'getData',
array('validation'=>'xsd:string'),
array('return'=>'tns:package'),
$namespace,
false,
'rpc',
'encoded',
'description'
);
功能:
function GetData($validation)
{
if($validation == "thegoodguy") {
$result['data'] = array(
"important" => "a top secret information",
"stuff" => "another one"
);
$result['errormsg'] = null;
} else {
$result['data'] = null;
$result['errormsg'] = "permission denied!";
}
return $result;
}
這樣客戶端可以嘗試分析接收到的數據,如果它爲空,那麼他會顯示錯誤消息。
0
您首先需要定義一個新類型,描述像這樣的字符串數組:
$server->wsdl->addComplexType(
'ArrayOfString',
'complexType',
'array',
'sequence',
'',
array(
'itemName' => array(
'name' => 'itemName',
'type' => 'xsd:string',
'minOccurs' => '0',
'maxOccurs' => 'unbounded'
)
)
);
然後你可以使用TNS:ArrayOfString作爲返回類型。
+0
這不是我想要返回的。我想返回一個odel的數組,我已經有了它的ComplexType,但是我也想要返回一個單一的字符串,如果無論如何我無法返回預期的ComplexType。這就像我想要在單個函數中返回兩種類型。 1成功(ComplexType),另一個失敗(消息) –
相關問題
- 1. 申報返回類型時,有兩種可能的返回類型
- 2. JavaScript多種返回類型
- 3. 返回多種類型
- 4. 返回多種類型
- 5. 泛型函數有兩種返回類型是什麼意思?
- 6. 返回通用擴展兩種類型的工廠方法
- 7. 返回派生自同一抽象類的兩種類型
- 8. 具有多種返回類型的類?
- 9. 返回信封與nusoap
- 10. NuSoap返回多餘字符
- 11. nusoap如何返回數組?
- 12. NuSOAP返回空陣列
- 13. ASP.NET WebApi - 兩種可能的JSON「返回」類型?
- 14. 如何不從func返回兩種不同的類型?
- 15. 兩種不同的返回類型在PHP函數
- 16. 蟒蛇datetime.datetime返回兩種不同類型的
- 17. 斯威夫特函數返回兩種不同類型的
- 18. in_array比較兩種不同類型,但返回true
- 19. Ajax能否成功()處理兩種類型的返回?
- 20. 兩種類型的回發事件的
- 21. NoSuchMethodException - 方法的返回類型已經改變 - 要接受這兩種類型
- 22. WCF返回2種服務的類型
- 23. C宏/函數返回多種類型
- 24. 帶多種返回類型的方法
- 25. 方法中的多種返回類型?
- 26. NHibernate的多種返回類型
- 27. Pandoc返回任一種類型
- 28. Restful Web Services和多種返回類型
- 29. Web API如何返回多種類型
- 30. 在Typescript中返回多種Observable類型
您似乎忘記提問了。你有什麼嘗試?什麼都沒有奏效?你已經做了什麼研究來解決這個問題? – Charles