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了, 恳请指出,谢谢。

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