兩種接口傳送數據協議(xml和json)

   規範性接口開發中,一般數據是以json或者xml的格式傳送的,而不是字符串的形式直接返回給接口調用者;下面介紹這兩種格式的編寫方法。

   下面兩種數據傳送方式是接口輸出端的編寫。需引入的包如下:

<span style="font-family:KaiTi_GB2312;font-size:18px;">importjava.io.PrintWriter;

importjava.io.StringWriter;

importjavax.servlet.http.HttpServletResponse;

importorg.dom4j.Document;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.XMLWriter;</span>


1.傳送 XML 協議的格式數據

<span style="font-family:KaiTi_GB2312;font-size:18px;">   /**

    * xml 格式數據

    *

    * @param response

    * @param doc

    */

    publicstaticvoidoutDocToXML(HttpServletResponse response, Document doc) {

       // 以下代碼請注意編碼順序

       response.setCharacterEncoding("utf-8");

       response.setContentType("text/xml;charset=utf-8");

       response.setHeader("Pragma", "no-cache");

       response.setHeader("Cache-Control", "no-cache");

       response.setDateHeader("Expires", 0);

       PrintWriter out = null;

       StringWriter writer = new StringWriter();

       OutputFormat format = OutputFormat.createPrettyPrint(); //

       format.setEncoding("UTF-8");

       XMLWriter xmlwriter = new XMLWriter(writer,format);

 

       try {

            out = response.getWriter();

           xmlwriter.write(doc);

       } catch (Exception e) {

           e.printStackTrace();

       }

       out.print(writer.toString());

       out.close();

}</span>


 

2.傳送 json 協議的格式數據

<span style="font-family:KaiTi_GB2312;font-size:18px;">/**

    * json 數據格式

    *

    * @param response

    * @param data

    * @param type

    */

    protectedvoidsendData(HttpServletResponse response, Object data) {

       if (data != null) {

           response.setCharacterEncoding("utf-8");

           response.setContentType("application/json;charset=UTF-8");

           response.setHeader("Pragma", "no-cache");

           response.setHeader("Cache-Control", "no-cache");

           response.setDateHeader("Expires", 0);

           PrintWriter out = null;

           try {

                out = response.getWriter();

                out.print(data);

                out.close();

           } catch (Exception e) {

                e.printStackTrace();

           }

       }

    }</span>

轉正請指明出處:blog.csdn.net/yangkai_hudong
發佈了418 篇原創文章 · 獲贊 62 · 訪問量 238萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章