vickzhu

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(6)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

                  最近我們公司的jsp網站要和另一家公司的asp網站做通訊,之間通過xml傳遞信息
                  現假如我們公司是A,對方公司是B,如果A發送一條信息給B,B必須反饋一條信息表示是否執行成功。這里有兩種模式可以使用,
              第一:A、B把對方都當做服務器進行消息發送
              第二:A相當于瀏覽器、B相當于服務器,A發送一個消息給B,B直接返回給A信息。
              下面我們來看看這兩種方式分別怎么實現?
              第一種:
                  1、A(a.jsp)的代碼:
                  StringBuffer sb=new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\"?>");
                  sb.append("<User>");
                  sb.append("<HEAD>");
                  sb.append("<SUCCESS></SUCCESS>");
                  sb.append("</HEAD>");
                  sb.append("<BODY>");
                  sb.append("<MOBILE></MOBILE>");
                  sb.append("<NAME></NAME>");
                  sb.append("<SEX></SEX>");
                  sb.append("</BODY>");
                  sb.append("</User>");
                  URL url = new URL("B服務器的接收路徑");
                  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                  conn.setRequestProperty("Content-Type", "text/xml;charset=gbk");
                  conn.setRequestMethod("POST");
                  conn.setRequestProperty("Content-Length", String.valueOf(xml.length()));
                  conn.setConnectTimeout(5000);
                  conn.setDoOutput(true);
                  OutputStream os = conn.getOutputStream();
                  os.write(sb.toString().getBytes());
                  os.flush();
                  os.close();
                  2、B服務器接收到A的請求后,也以類似于1(當然asp中的代碼我不知道怎么寫)將反饋信息發送到A的指定路徑(b.jsp)
                  3、A(b.jsp)接收B的反饋信息:
                      InputStream is=request.getInputStream();
              第二種:
                  1、A(a.jsp)的代碼
                      StringBuffer sb=new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\"?>");
                      sb.append("<User>");
                      sb.append("<HEAD>");
                      sb.append("<SUCCESS></SUCCESS>");
                      sb.append("</HEAD>");
                      sb.append("<BODY>");
                      sb.append("<MOBILE></MOBILE>");
                      sb.append("<NAME></NAME>");
                      sb.append("<SEX></SEX>");
                      sb.append("</BODY>");
                      sb.append("</User>");
                      URL url = new URL("B服務器的接收路徑");
                      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                      conn.setRequestProperty("Content-Type", "text/xml;charset=gbk");
                      conn.setRequestMethod("POST");
                      conn.setRequestProperty("Content-Length", String.valueOf(xml.length()));
                      conn.setConnectTimeout(5000);
                      conn.setDoOutput(true);
                      OutputStream os = conn.getOutputStream();
                      os.write(sb.toString().getBytes());
                      os.flush();
                      os.close();
                  2、B接收到A(a.jsp)服務器的代碼后用
                          byte[] byts = new byte[Request.InputStream.Length];
                       Request.InputStream.Read(byts,
          0,byts.Length);
                          
          然后用Response.OutputStream.write()返回信息
                  3、A(a.jsp)接收B服務器的反饋信息(和1的代碼同在a.jsp中,并且就接著1代碼的后面)
                         if(conn.getResponseCode()==200){
                             String line=null;
                             String body="";
                             is = conn.getInputStream();
                             BufferedReader br = new BufferedReader(new InputStreamReader(is));
                             while ((line = br.readLine()) != null) {
                                  body += line;
                             }
                             conn.disconnect();
                        }
                  其中訪問一個頁面主要用到了HttpURLConnection這個類,當然還有其它幾種方式可以使用,具體請參見我的文章http://www.aygfsteel.com/vickzhu/archive/2008/11/12/240013.html
          posted on 2009-01-04 14:57 筱 筱 閱讀(1049) 評論(1)  編輯  收藏

          評論

          # re: java 發送 xml 流 2010-09-14 20:32 xml初學
          好!  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 政和县| 安乡县| 临洮县| 梅河口市| 弋阳县| 根河市| 砚山县| 拜泉县| 莱西市| 金寨县| 射洪县| 比如县| 德格县| 灵台县| 福贡县| 镇远县| 会同县| 进贤县| 闸北区| 运城市| 建瓯市| 鄂伦春自治旗| 色达县| 明溪县| 扬州市| 边坝县| 安陆市| 方山县| 江孜县| 兰溪市| 永平县| 大名县| 左贡县| 大兴区| 万载县| 会同县| 沾益县| 鹰潭市| 平和县| 老河口市| 加查县|