2012-07-20 51 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