2011-09-15 121 views
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代碼的任何想法?

回答

0

問題是QtSoap代碼內

只是搜索其中的xmlns =「」應該被添加到在qtsoap源代碼 SOAP消息和編輯如果構造使得它也增加了它當字符串是「」

固定爲我

的問題,如果你想源:給我發短信,我會送它

+0

嗨BERTY,我有同樣的問題!你有解決這個問題的代碼嗎? – Zunandi

+0

你好,我部分修復了它,但是我對結果從來不滿意。所以我切換到phonegap構建我的應用程序。試試看:http://phonegap.com/ – Berty

+0

我沒有代碼,再解決這個問題(刪除了它很久以前) – Berty