我有两个jax-rs webservices: WS1 和 WS2 。
我还有一个用户添加一些文本的html表单,当点击提交按钮调用WS1或WS2并通过post发送xml文件时。
xml文件如下所示:
<documents>
<document> some text 1 </document>
<document> some text 2 </document>
</documents>
当我从html表单中调用 ws1 或 ws2 时,xml文件会毫无问题地通过。
但是当我尝试从 ws2 调用 ws1 时,我无法发送包含元素“document”中特殊字符的xml文件。 (不要发送所有xml文件)
所以我的问题是如何传递包含特殊字符的xml文件或如何替换所有特殊字符?
致电wb1
public String sendPost(String value) throws Exception {
String url = "http://localhost:8084//wb1";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
String urlParameters = "xmlinput=" + value;
// Send post request
con.setDoOutput(true);
java.io.BufferedOutputStream wr = new BufferedOutputStream(con.getOutputStream());
wr.write(urlParameters.getBytes());
wr.flush();
wr.close();
//response
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
response.append(inputLine);
}
in.close();
return response.toString();
}
WB1:
@POST
@Produces("application/xml")
public String getXml(@FormParam("xmlinput") String xmlinput) throws Exception {
//some code
}
修改
例如我有这个字符串:
RT @ CEJA :CEJA主席@BartoliniMatteo与S&amp; D COMAGRI 协调员@paolodecastro。 @EP_Agriculture @TheProgressives http://t.co/65xi4 ...
我想替换&amp; amp; amp;与黑色空间。
我尝试使用 String.replaceAll(“\ W”,“”); 但是1)仅替换&amp ;; 2)我想保留链接而不做修改
答案 0 :(得分:1)
请求Apache Commons Lang org.apache.commons.lang.StringEscapeUtils#escapeXml获取请求,并使用#unescapeXml获取响应。