如何在Java中创建soap请求和响应?
问题描述:
如何执行soap web服务以及如何打印数据?如何在Java中创建soap请求和响应?
目前我使用下面的代码
package com.appulento.pack;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class SimpleHTTPRequest
{
public static void main(String[] args) throws Exception {
final String url =
"http://**********:8000/sap/bc/srt/rfc/sap/zmaterials_details/" +
"800/zmaterials_details/zmaterials_details_bind",
soapAction ="urn:sap-com:document:sap:soap:functions:mc-style/ZMATERIALS_DETAILS",
envelope1="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"" +
" xmlns:urn=\"urn:sap-com:document:sap:soap:functions:mc-style\">" +
"<soapenv:Header>"+
"<soapenv:Body>"+
"<urn:ZMATERIALS_DETAILS>"+
"<Language>D</Language>"+
"<MaterialGroup>00208</MaterialGroup>"+
"</urn:ZMATERIALS_DETAILS>"+
"</soap:Body>"+
"</soap:Envelope>" ;
HttpURLConnection connection = null;
try {
final URL serverAddress = new URL("http://*********:8000/sap/bc/srt/wsdl/"+
"srvc_14DAE9C8D79F1EE196F1FC6C6518A345/wsdl11/allinone/ws_policy/" +
"document?sap-client=800&sap-user=************&sap-password=****");
connection = (HttpURLConnection)serverAddress.openConnection();
connection.setRequestProperty("SOAPAction", soapAction);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
final OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.append(envelope1);
writer.close();
final BufferedReader rd =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = rd.readLine()) != null) System.out.println(line);
} finally { connection.disconnect(); }
}
}
我想发送XML作为输入请求,我想在XML中显示了。
答
Iit可以像使用httpConnection和解析响应一样发送HTTP请求。 但它已被其他人使用,使用wsimport
工具与-keep
选项。它将为您生成用于使用SOAP发送请求的Java工件。
+0
“我的代码”中是否有任何错误,请参阅一次,让我知道,以便我可以转移到其他方式 – 2012-04-25 12:38:26
你的代码看起来很棒。现在只需使用'POST'而不是'GET',然后将您的请求写入输出。 – 2012-04-25 10:47:10
感谢您的回复我如何处理回复 – 2012-04-25 11:08:23
据我所知,您已经在处理它 - 写入System.out。 – 2012-04-25 11:09:38