我正在尝试读取从 Struts2 中的另一个 Servlet 发送的流请求
我正在尝试编写一个 servlet,它将通过 STRUTS2 中的 POST 将 XML 文件(xml 格式的字符串)发送到另一个 servlet。
将发送 XML 文件的 servlet:
String requestStr = "...........xml text........";
URLConnection con = new uRL("http://192.168.1.74/Project1/Request").openConnection();
con.setDoOutput(true);
OutputStream xmlResp = con.getOutputStream();
xmlResp.write(requestStr.getBytes("UTF-8"));
xmlResp.flush();
xmlResp.close();
将接收 XML 文件的 servlet:
InputStream in=req.getInputStream();
StringBuffer xmlStr=new StringBuffer();
int d;
while((d=in.read()) != -1){
xmlStr.append((char)d);
}
System.out.println("xmlStr1--"+xmlStr.toString());
int iCont=req.getContentLength();
return xmlStr.toString();
在上述情况下 InputStream : in.read 返回 -1 但 int iCont = req.getContentLength(); iCont 返回值 1335...!
上面的代码在非 struts 环境中检查时工作正常......?
I am trying to write a servlet that will send a XML file (xml formatted string) to another servlet via a POST in STRUTS2.
servlet that will send a XML file:
String requestStr = "...........xml text........";
URLConnection con = new uRL("http://192.168.1.74/Project1/Request").openConnection();
con.setDoOutput(true);
OutputStream xmlResp = con.getOutputStream();
xmlResp.write(requestStr.getBytes("UTF-8"));
xmlResp.flush();
xmlResp.close();
servlet that will recive a XML file :
InputStream in=req.getInputStream();
StringBuffer xmlStr=new StringBuffer();
int d;
while((d=in.read()) != -1){
xmlStr.append((char)d);
}
System.out.println("xmlStr1--"+xmlStr.toString());
int iCont=req.getContentLength();
return xmlStr.toString();
in above case InputStream : in.read returns -1 but int iCont = req.getContentLength(); iCont returns value 1335....!
Above code worked fine when checked in non-struts Environment.....?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决:
如果您在 srvlet 中使用 inputStream 来读取值流,则在通过
req.getInputStream()< 将 Stream 值获取到 InputStream 之前,您不应该使用
Request.getParameter()
.... /code>...例如:
正确--方法
以下方法将导致问题:
Solved :
If you are using inputStream in srvlet to read value stream, you are not suppose to use
Request.getParameter()
.... before getting Stream value to InputStream throughreq.getInputStream()
...Ex:
Correct-- method
Below method will cause ISSUE: