xstream生成xml格式控制

當系統間傳輸xstream生成的xml格式的報文時,如果對報文進行簽名認證,很可能認證失敗,原因就是xstream生成的xml報文各個元素之間有空格和換行符,而接收端如果用BUfferedReader接收報文,則會自動忽略換行符,導致簽名的報文和認證的報文不一致。爲解決這個問題,需要改變xstream生成xml的格式,即去掉換行符和空格。

去掉換行符可使用 replaceAll("\r","").replaceAll("\n","")

去掉空格 Writer writer = new StringWriter();   xstream.marshal(retMessage, new CompactWriter(writer));

既去空格又去換行符 OutputStream output = new ByteArrayOutputStream();  xstream.marshal(txnMsgContent, new CompactWriter(new OutputStreamWriter(output)));

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