如何在java中发出soap xml请求
我不熟悉肥皂。我无法发出如何在java中发出soap xml请求,java,xml,soap,Java,Xml,Soap,我不熟悉肥皂。我无法发出soapxml请求。所需的XML格式为: <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&
soap
xml请求。所需的XML格式为:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendRequest xmlns="http://tempuri.org/">
<request xsi:type="CheckStatusRequest" Id="a8bee82b-3c01-44ab-8d56-4728d3c76dd8" xmlns="http://paygo24.com/v3/protocol"/>
<pointId>46</pointId>
<password>4QrcOUm6Wau+VuBX8g+IPg==</password>
</SendRequest>
</soap:Body>
</soap:Envelope>
但是我无法创建上面提到的确切的XML请求。有人能帮忙吗…天哪。希望不是真的密码。不,不是同一个密码。实际的问题是什么?错误?异常?我无法发出上面提到的确切的xml请求。
private static SOAPMessage createSOAPRequestSendRequest() throws Exception {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
String serverURI = "http://tempuri.org/";
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.removeNamespaceDeclaration("SOAP-ENV");
envelope.setPrefix("soap");
envelope.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
envelope.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
// SOAP Body
SOAPBody soapBody = envelope.getBody();
soapBody.setPrefix("soap");
SOAPElement soapBodyElem = soapBody.addChildElement(new QName("http://tempuri.org/","SendRequest"));
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement(new QName("http://paygo24.com/v3/protocol","request"));
soapBodyElem1.addAttribute(new QName("xsi:type"), "CheckStatusRequest");
soapBodyElem1.addAttribute(new QName("Id"), "a8bee82b-3c01-44ab-8d56-4728d3c76dd8");
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement(new QName("pointId"));
soapBodyElem2.addTextNode("46");
SOAPElement soapBodyElem3 = soapBodyElem.addChildElement(new QName("password"));
soapBodyElem3.addTextNode("bTf/TVO7k/mCPzeXSVgJVA==");
MimeHeaders headers = soapMessage.getMimeHeaders();
soapMessage.getSOAPHeader().detachNode();
headers.addHeader("SOAPAction", serverURI + "SendRequest");
soapMessage.saveChanges();
ByteArrayOutputStream out = new ByteArrayOutputStream();
soapMessage.writeTo(out);
System.out.print("Request SOAP Message ");
System.out.println(new String(out.toByteArray()));
return soapMessage;
}
private static SOAPMessage createSOAPRequestSendRequest() throws Exception {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
String serverURI = "http://tempuri.org/";
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.removeNamespaceDeclaration("SOAP-ENV");
envelope.setPrefix("soap");
envelope.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
envelope.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
// SOAP Body
SOAPBody soapBody = envelope.getBody();
soapBody.setPrefix("soap");
SOAPElement soapBodyElem = soapBody.addChildElement(new QName("http://tempuri.org/","SendRequest"));
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement(new QName("http://paygo24.com/v3/protocol","request"));
soapBodyElem1.addAttribute(new QName("xsi:type"), "CheckStatusRequest");
soapBodyElem1.addAttribute(new QName("Id"), "a8bee82b-3c01-44ab-8d56-4728d3c76dd8");
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement(new QName("pointId"));
soapBodyElem2.addTextNode("46");
SOAPElement soapBodyElem3 = soapBodyElem.addChildElement(new QName("password"));
soapBodyElem3.addTextNode("bTf/TVO7k/mCPzeXSVgJVA==");
MimeHeaders headers = soapMessage.getMimeHeaders();
soapMessage.getSOAPHeader().detachNode();
headers.addHeader("SOAPAction", serverURI + "SendRequest");
soapMessage.saveChanges();
ByteArrayOutputStream out = new ByteArrayOutputStream();
soapMessage.writeTo(out);
System.out.print("Request SOAP Message ");
System.out.println(new String(out.toByteArray()));
return soapMessage;
}