- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.XMLWriter;
- public class GetForeignXML {
- public static void main(String[] args) {
- proccessOper("<getprefixcountresp> <msgtype>GetPrefixCountResp</msgtype> <count>5392</count> <hret>0</hret></getprefixcountresp>");
- }
- public static String proccessOper(String xmlStr) {
- /**********************发送请求************************/
- Document doc = null;
- try {
- doc = DocumentHelper.parseText(xmlStr);
- } catch (DocumentException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- HttpURLConnection conn = null;
- StringBuffer sb = new StringBuffer();
- try
- {
- URL url = new URL("http://localhost:8082/RequestXML/servlet/ForeignServlet");
- conn = (HttpURLConnection) url.openConnection();
- conn.setDoOutput(true);
- conn.setUseCaches(false);
- conn.setDefaultUseCaches(false);
- conn.setRequestMethod("GET");
- conn.setRequestProperty("Accept", "text/html");
- conn.setRequestProperty("Content-type", "text/html");
- conn.setRequestProperty("connection", "close");
- OutputStream out = conn.getOutputStream();
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("GB2312"); //设置XML文档的编码类型
- format.setSuppressDeclaration(false);//设置是否打印文档头,即:<?xml version="1.0" encoding="GB2312"?>
- format.setIndent(true); //设置是否缩进
- format.setIndent(" "); //以空格方式实现缩进
- format.setNewlines(true); //设置是否换行
- format.setTrimText(true);//删除结点值的首尾空格
- XMLWriter writer = new XMLWriter(bw, format);
- writer.write(doc);
- writer.flush();
- writer.close();
- bw.close();
- out.flush();
- out.close();
- /************************接收返回数据***************************/
- InputStream in = conn.getInputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(in));
- char[] mychar = new char[100];
- int len = 0;
- while ((len = br.read(mychar)) != -1) {
- sb.append(new String(mychar));
- mychar = new char[100];
- }
- br.close();
- in.close();
- /****将返回的数据写入XML文件****/
- FileWriter fw = new FileWriter(new File("c://MyXML.xml"));
- fw.write(sb.toString().trim());
- fw.flush();
- fw.close();
- System.out.println("$$$$$返回结果长度:" + sb.toString().trim().length());
- } catch (Exception e) {
- e.printStackTrace();
- }
- return sb.toString().trim();
- }
- }