大家好,這是第一次寫博客,跟大家一起學習。
在項目中用到了在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了, 懇請指出,謝謝。