2012-07-20 82 views
0

首先,我非常抱歉在SOF中提出了一個已經很常見的問題。Set Soap Header ksoap2 android

但我是一個初學者,我肯定是殘酷的。

我正在創建一個與WS進行通信的android應用程序。所以我可以向WS發出請求,我必須給信封的標題添加一個值,但我不能添加。

我在SOF裏發現了一些關於它的答案,但是不能完全理解它是如何工作的。也許,我的疑惑是由於標題的節點,最終導致我更加困惑。

一個,我發現我最終沒有幫助的答案:「How to set soap header using ksoap2 android

下面是需要做的XML請求:

?xml version="1.0" encoding="utf-8"? 
soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 

soap:Header 
    ValidationSoapHeader xmlns="http://tempuri.org/" 
     DevToken>string/DevToken 
    /ValidationSoapHeader 
/soap:Header 

soap:Body 
    ListaCidades xmlns="http://tempuri.org/"/
/soap:Body 
/soap:Envelope 

而且我下面的代碼:

SoapObject request = new SoapObject(ApplicationData.NAMESPACE, ApplicationData.METHOD_NAME_LISTA_CIDADES); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

    envelope.dotNet = true; 

    envelope.setOutputSoapObject(request); 

我到底該如何使用envelope.HeaderOut?是否真的有必要創建一個輔助方法來構建一個元素,即使只傳遞一個參數(DevToken)?

感謝您的關注!

+0

解決!!!終於設法解決了! – 2012-07-23 10:55:21

回答

0
Element h = new Element().createElement(NAMESPACE, "AuthHeader"); 
    Element Username = new Element().createElement(NAMESPACE, "Username"); 
    Username.addChild(Node.TEXT, "CBROWN"); 
    h.addChild(Node.ELEMENT, Username); 
    Element wssePassword = new Element().createElement(NAMESPACE, "wssePassword"); 
    wssePassword.addChild(Node.TEXT, "welcome"); 
    h.addChild(Node.ELEMENT, wssePassword); 

    envelope.headerOut = new Element[]{h}; 

在信封添加上述代碼附加標題

+0

凱爾斯可以請你連接我在這裏https://chat.stackoverflow.com/rooms/146715/soap – 2017-06-15 05:26:24