📄 recvresponsefrombusiness.java
字号:
package business.mo;
import java.io.*;
import java.net.*;
import business.common.*;
/**
* <p>Title: 模拟短信业务平台请求商户</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004.8</p>
* <p>Company: 掌上通</p>
* @author hjj
* @version 1.0
*/
public class RecvResponseFromBusiness {
public RecvResponseFromBusiness() {
}
public static void main(String[] args) {
//这个url是商户提供给短信平台的
String SOAPUrl = "http://localhost:8080/wapdmToBusinessHTTP/RecvMOFromWapdm.jsp";
//用来转换成数据流的xml文件
String xmlFile2Send = "D:/test1.xml";
//调用向商户发送请求方法
boolean flag=sendRequest(SOAPUrl,xmlFile2Send);
//直到短信平台接收到商户返回的OK才停止发送
System.out.println("flag="+flag);
// while(!flag){
// flag = sendRequest(SOAPUrl, xmlFile2Send);
//
// }
}
/**
* 短信平台向商户发送http请求
* @param urlSOAPUrl 商户接收请求的
* @param xmlFile2Send
* @return flag
*/
private static boolean sendRequest(String SOAPUrl, String xmlFile2Send) {
//判断商户返回的是否是ok
boolean flag=false;
HttpURLConnection httpConn=null;
FileInputStream fin = null;
OutputStream out = null;
InputStreamReader isr = null;
BufferedReader in = null;
try {
//与商户建立一个连接
URL url = new URL(SOAPUrl);
//打开连接
httpConn = (HttpURLConnection) url.openConnection();
fin = new FileInputStream(xmlFile2Send);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
copy(fin, bout);
byte[] b = bout.toByteArray();
httpConn.setRequestProperty("Content-Length", String.valueOf(b.length));
//以xml格式传送
httpConn.setRequestProperty("Content-Type", "text/xml; charset=GB2312");
httpConn.setRequestMethod("POST");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
out = httpConn.getOutputStream();
out.write(b);
out.flush();
httpConn.connect();
//获取输入流
isr = new InputStreamReader(httpConn.getInputStream());
in = new BufferedReader(isr);
//存放商户返回的结果
StringBuffer buf = new StringBuffer();
String inputLine;
while ( (inputLine = in.readLine()) != null)
{
buf.append(inputLine);
}
//判断商户返回的结果
if (buf.toString().trim().equalsIgnoreCase("ok")) {
Tools.trace(buf.toString().trim());
flag=true;
}
else {
flag=false;
}
}catch (MalformedURLException ex) {
Tools.error(ex);
}
catch (IOException ex) {
Tools.error(ex);
}
finally {
//关闭操作
Tools.closeBufferedReader(in);
Tools.closeInputStreamReader(isr);
Tools.closeOutputStream(out);
Tools.closeFileInputStream(fin);
Tools.closeHttpURLConnection(httpConn);
}
return flag;
}
/**
* 将FileInputStream读取到ByteArrayOutputStream中
* @param in
* @param out
* @throws IOException
*/
private static void copy(InputStream in, OutputStream out) throws IOException {
synchronized (in) {
synchronized (out) {
byte[] buffer = new byte[256];
while (true) {
int bytesRead = in.read(buffer);
if (bytesRead == -1)
break;
out.write(buffer, 0, bytesRead);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -