java通過HTTP接收xml和返回xml

大家好,這是第一次寫博客,跟大家一起學習。
在項目中用到了在CS客戶端通過http發送xml文件,java後臺接受,並返回xml文件,經過查閱資料,流程走通,有效

@RequestMapping(value = "login", params = "method=CSlogin")
public void CSLogin(HttpServletRequest request, HttpServletResponse response) {
        Document resDoc = null;
        try {
            // 獲取HTTP請求的輸入流
            // 已HTTP請求輸入流建立一個BufferedReader對象
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    request.getInputStream(), "UTF-8"));

            String buffer = null;
            // 存放請求內容
            StringBuffer xml = new StringBuffer();
            while ((buffer = br.readLine()) != null) {
                // 在頁面中顯示讀取到的請求參數
                xml.append(buffer);
            }
            Document document = null;
            SAXReader reader = new SAXReader();
            ByteArrayInputStream inputStream = new ByteArrayInputStream(xml
                    .toString().getBytes());
            InputStreamReader ir = new InputStreamReader(inputStream);
//document已經獲取到xml文件
document = reader.read(ir);
//根據項目需求,解析xml文件
//。。。。略過

} catch (Exception ex) {
    ex.printStackTrace();
    //resDoc爲返回的xml文件       
    resDoc = getErrorDocument(accountName, "3", "系統處理出現異常");
} finally {
    OutputFormat format = OutputFormat.createCompactFormat();
    format.setEncoding("UTF-8");
    XMLWriter writer;
try {
    writer = new XMLWriter(response.getOutputStream(), format);
    //resDoc爲通過http返回的xml文件
    writer.write(resDoc);
    writer.flush();
    if (null != writer) {
        writer.close();
    }
} catch (Exception e) {
    log.error(e, e);
    e.printStackTrace();
}
}

由於經驗欠缺,性能優化不是很好,如果大神發現bug了, 懇請指出,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章