首先,我为在SOF中提出一个已经很常见的问题而道歉。
但我是初学者,我当然很残忍。
我正在创建一个与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);
我究竟如何使用信封.HeaderOut?是否真的有必要创建一个辅助方法来构建一个Element,甚至只需传递一个参数(DevToken)?
感谢您的关注!
答案 0 :(得分: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};
在信封
中添加上述代码以添加标题