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 C#读写EXCEL文件,不同编译
    • ¥15 如何提取csv文件中需要的列,将其整合为一篇完整文档,并进行jieba分词(语言-python)
    • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
    • ¥15 扩散模型sd.webui使用时报错“Nonetype”
    • ¥15 stm32流水灯+呼吸灯+外部中断按键
    • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
    • ¥15 NX MCD仿真与博途通讯不了啥情况
    • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
    • ¥15 gradio的web端页面格式不对的问题
    • ¥15 求大家看看Nonce如何配置