Anoth 2017-01-06 07:27 采纳率: 0%
浏览 594

struts2返回xml类型数据与http协议版本的关系

项目中需要请求返回xml格式的数据。在action中直接使用response.write实现的写数据。在客户端构造请求获取数据时出现了一个奇怪的问题,返回较长的内容时,后面始终会多一个0。而获取其他类型的请求内容时则不会出现。通过抓包工具构造请求发现有相同的问题,原因是如果请求是用的协议是http1.0则正常,用的Http1.1则会多个0,内容前还会多一个数字。客户端无法修改默认的请求协议版本,服务端要怎么改才能解决。
action代码如下:
@Action(value = "testData",results = { @Result(name = "xmlMessage", type="plainText") })
public void testD() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("UTF-8");

response.setContentType("text/xml;charset=utf-8");

response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();

out.write(content);

}

Http1.1构造请求返回结果:

2000
<?xml version="1.0" encoding="UTF-8"?>0查询成功......

0

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发