日期:2014-04-14  浏览次数:20980 次

package com.yuchai.marketing.vehicleSCM.sendNC;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.CharArrayWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.Socket;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;
import java.util.Properties;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.SAXReader;
import org.w3c.dom.*;

import com.yuchai.marketing.vehicleSCM.xml.builder.NCInvoiceXMLBuilder;
import com.yuchai.marketing.vehicleSCM.xml.builder.SuperBuilder;

/**
 * 2006-04-04
 * @author weiwei 

*/
public class HttpSend {

 protected URL url;

 private URLConnection conn;

 /**
  * POST方法是向服务器传送数据,以便服务器做出相应的处理。例如网页上常用的 提交表格。
  */
 public void POST(Document content) {
  sendMessage(content);
 }

 /**
  * 把xml文件写入到输出流中,从而实现想nc服务器传送数据
  *
  * @param content
  */
 private void sendMessage(Document content) {
  try {
   OutputStream raw = conn.getOutputStream();
   OutputStream buf = new BufferedOutputStream(raw);
   OutputStreamWriter out = new OutputStreamWriter(buf);
   /*
    * SAXReader saxReader = new SAXReader(); Document documentFROMD =
    * saxReader.read("d://try.xml");
    * documentFROMD.setXMLEncoding("gb2312");
    */
   // out.write(new String(content));
   out.write(content.asXML());
   out.flush();
   out.close();
   raw.close();
  } catch (IOException e) {
   new IOException("传送失败");
  }
 }

 /**
  * 从输入流中读取回执文件
  *
  * @return
  */
 public Document getReceiverMessage() {
  try {

   InputStream raw = conn.getInputStream();
   InputStream in = new BufferedInputStream(raw);
   Reader reader = new InputStreamReader(in);
   BufferedReader bufreader = new BufferedReader(reader);

   String xmlString = "";

   // 输出在后台
   int c;
   System.out.println("==================Beging====================");
   while ((c = bufreader.read()) != -1) {
    System.out.print((char) c);
    xmlString += (char) c;
   }
   in.close();
   System.out.println("===================End======================");
   // 把xml字符串转换成xml文件
   Document document = DocumentHelper.parseText(xmlString);
   return document;
  } catch (DocumentException e) {
   new DocumentException("回执文件格式不合法");
  } catch (IOException e) {
   new IOException("无法取得回执文件");
  }
  return null;
 }

 /**
  * 建立连接,并设置输出预备为true