50,523
社区成员
发帖
与我相关
我的任务
分享
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
soapConnection = soapConnectionFactory.createConnection();
//创建SOAPMessage
SOAPMessage soapMessage = createSoapMessage(soapRequestElem, needsAuthentification);
//发送
soapResponse = soapConnection.call(soapMessage, soapUri);
protected SOAPMessage createSoapMessage(Object soapRequestElem, boolean needAuthentification) throws SOAPException, ParserConfigurationException,
JAXBException {
MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
SOAPMessage soapMessage = messageFactory.createMessage();
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Marshaller marshaller = JAXBContext.newInstance(soapRequestElem.getClass()).createMarshaller();
marshaller.marshal(soapRequestElem, document);
soapMessage.getSOAPBody().addDocument(document);
// if (needAuthentification)
createSoapHeader(soapMessage);
soapMessage.saveChanges();
return soapMessage;
}
POST /onvif/device_service HTTP/1.1
Accept: application/soap+xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Type: application/soap+xml; charset=utf-8
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.7.0_67
Host: 192.168.168.139
Connection: keep-alive
Content-Length: 851
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<env:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">c1v/qUvoMJA9xdmutnmvBTgzPzs=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">LTEyOTg3NDM5NzA=</wsse:Nonce>
<wsu:Created>2019-11-8T03:58:25Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</env:Header>
<env:Body>
<GetCapabilities xmlns="http://www.onvif.org/ver10/device/wsdl"/>
</env:Body>
</env:Envelope>