0
我triing讓肥皂在QT 工作,我發現:qtsoap-2.7_1 - 開源Qtsoap請求不傳遞參數
我請求代碼:
void DataConnector::checkLogin(QString username, QString password){
QtSoapMessage request;
request.setMethod(QtSoapQName("checkLogin","http://service/"));
request.addMethodArgument("username","",username);
request.addMethodArgument("password","",password);
http->setAction("");
http->submitRequest(request, QString("/datacheckService"));
}
的請求SOAP消息看起來像這:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<checkLogin xmlns="http://service/">
<username xsi:type="xsd:string" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">4444</username>
<password xsi:type="xsd:string" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">4444</password>
</checkLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
服務器不檢測用戶名和密碼標籤,因爲它們有錯誤的名稱空間。
的問題是,用戶名和密碼應該得到一個屬性:的xmlns:=「」,而不是沒有命名空間。導致沒有命名空間意味着他們接管其父的名字空間
我的要求應該是這樣的:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<checkLogin xmlns="http://service/">
<username xmlns="" xsi:type="xsd:string" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">4444</username>
<password xmlns="" xsi:type="xsd:string" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">4444</password>
</checkLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我如何實現這一目標使用qtsoap代碼的任何想法?
嗨BERTY,我有同樣的問題!你有解決這個問題的代碼嗎? – Zunandi
你好,我部分修復了它,但是我對結果從來不滿意。所以我切換到phonegap構建我的應用程序。試試看:http://phonegap.com/ – Berty
我沒有代碼,再解決這個問題(刪除了它很久以前) – Berty