创建没有 ns1、ns2、ns3 命名空间的soap 请求

我正在实现一个 Web 服务客户端,它的请求应该是这样的,它适用于soap-ui。


<soapenv:Envelope 

    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 

    xmlns:met="http://tempuri.org/">


    <soapenv:Header>

        <met:Authentication>

            <met:Username>test</met:Username>

            <met:Password>test</met:Password>

        </met:Authentication>

    </soapenv:Header>

    <soapenv:Body>

        <met:UpdateOrder>

            <met:ID>5311221</met:ID>

            <met:Status>true</met:Status>

        </met:UpdateOrder>

    </soapenv:Body>

</soapenv:Envelope>

我需要添加一个身份验证标头,到目前为止我的工作如下,


SOAPHeaderElement header=new SOAPHeaderElement("http://tempuri.org/","met");

header.setActor(null);

MessageElement usernameToken = new MessageElement(new QName("Authentication","met"));


header.addChild(usernameToken);


MessageElement userToken = new MessageElement(new QName("Username","met"));

userToken.addTextNode(userName);

usernameToken.addChild(userToken);


MessageElement passToken = new MessageElement(new QName("Password","met"));

passToken.addTextNode(password);

                

usernameToken.addChild(passToken);

_stub.setHeader(header);

这样我得到以下请求


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 

    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    

    <soapenv:Header>

        <ns1:met soapenv:mustUnderstand="0" xmlns:ns1="http://tempuri.org/">

            <ns2:met xmlns:ns2="Authentication">

                <ns3:met xmlns:ns3="Username">test</ns3:met>

                <ns4:met xmlns:ns4="Password">test</ns4:met>

            </ns2:met>

        </ns1:met>

    </soapenv:Header>

    <soapenv:Body>

        <UpdateOrder xmlns="http://tempuri.org/">

            <ID>4576175</ID>

            <Status>true</Status>

        </UpdateOrder>

    </soapenv:Body>

</soapenv:Envelope>

我的问题是我应该怎么做才能获得工作请求?我想我需要删除ns1和ns2命名空间。


互换的青春
浏览 1031回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java