[align=center][size=x-large]报文收发几种方式总结[/size][/align]
[align=right]注:权且记录开发过程中遇到的各种报文发送方式[/align]
[size=large]一、web service post方式[/size]
[size=large]1.1 代码示例:[/size]
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
public class SendWebserivceMsg {
private static Logger logger = Logger.getLogger(SendWebserivceMsg.class);
public String getWebserivceMsgDocument(String soap, String portalURL) {
Document document = null;
SAXReader reader = new SAXReader();
String str = "";
Map map = new HashMap();
reader.getDocumentFactory().setXPathNamespaceURIs(map);
try {
InputStream inputStream = getSoapInputStream(soap, portalURL); // 得到输入流
document = reader.read(inputStream); // 将输入流转化为document
} catch (Exception e) {
e.printStackTrace();
}
str = document.asXML();
return str;
}
public static InputStream getSoapInputStream(String soap, String portalURL) throws Exception {
try {
if (soap == null) {
return null;
}
// post方式,走soap协议
URL url = new URL(portalURL);
URLConnection conn1 = url.openConnection();
HttpURLConnection conn = (HttpURLConnection) conn1;
// conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("Content-Length", Integer.toString(soap.length()));
conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
conn.setRequestProperty("SOAPAction", "sendSms");
conn.setRequestMethod("POST");
OutputStream outputStream = conn.getOutputStream();
OutputStreamWriter outputSW = new OutputStreamWriter(outputStream, "utf-8");
outputSW.write(soap);
outputSW.flush();
outputSW.close();
InputStream inputStream = conn.getInputStream();
return inputStream;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String getSoap(String destPhones, String msgs, String chargePhones, String ispNo,
String providerType, String sendDate, String serviceCode, String reserve) {
String soap = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:m0=\"http://schemas.xmlsoap.org/soap/encoding/\">"
[color=red][size=medium]备注:此处是完整的带soap协议的完整报文[/size][/color]
return soap;
}
[size=large]1.2 引用的jar[/size]
[color=red]见附件log4j-1.2.14.jar以及dom3j-1.6.1.jar[/color]
[align=left][size=large]二、web service get 方式[/size][/align]
[align=right]注:权且记录开发过程中遇到的各种报文发送方式[/align]
[size=large]一、web service post方式[/size]
[size=large]1.1 代码示例:[/size]
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
public class SendWebserivceMsg {
private static Logger logger = Logger.getLogger(SendWebserivceMsg.class);
public String getWebserivceMsgDocument(String soap, String portalURL) {
Document document = null;
SAXReader reader = new SAXReader();
String str = "";
Map map = new HashMap();
reader.getDocumentFactory().setXPathNamespaceURIs(map);
try {
InputStream inputStream = getSoapInputStream(soap, portalURL); // 得到输入流
document = reader.read(inputStream); // 将输入流转化为document
} catch (Exception e) {
e.printStackTrace();
}
str = document.asXML();
return str;
}
public static InputStream getSoapInputStream(String soap, String portalURL) throws Exception {
try {
if (soap == null) {
return null;
}
// post方式,走soap协议
URL url = new URL(portalURL);
URLConnection conn1 = url.openConnection();
HttpURLConnection conn = (HttpURLConnection) conn1;
// conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("Content-Length", Integer.toString(soap.length()));
conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
conn.setRequestProperty("SOAPAction", "sendSms");
conn.setRequestMethod("POST");
OutputStream outputStream = conn.getOutputStream();
OutputStreamWriter outputSW = new OutputStreamWriter(outputStream, "utf-8");
outputSW.write(soap);
outputSW.flush();
outputSW.close();
InputStream inputStream = conn.getInputStream();
return inputStream;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String getSoap(String destPhones, String msgs, String chargePhones, String ispNo,
String providerType, String sendDate, String serviceCode, String reserve) {
String soap = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:m0=\"http://schemas.xmlsoap.org/soap/encoding/\">"
[color=red][size=medium]备注:此处是完整的带soap协议的完整报文[/size][/color]
return soap;
}
[size=large]1.2 引用的jar[/size]
[color=red]见附件log4j-1.2.14.jar以及dom3j-1.6.1.jar[/color]
[align=left][size=large]二、web service get 方式[/size][/align]