大家好,这是第一次写博客,跟大家一起学习。
在项目中用到了在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了, 恳请指出,谢谢。