2 anoth Anoth 于 2017.01.06 15:27 提问

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
struts2.xml所支持返回值类型
-
调用接口,解析返回的的string类型xml文档
解析接受的string类型xml文档 package test; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.
struts2 返回boolean类型
java: private InputStream hint;//返回提示 Boolean isExist = false; if(user!=null){//如果用户不为空 isExist=true; this.hint= new StringBufferInputStream(isExist.toString()); return "checkOldPasswordHin
Java_HttpClient获取返回类型为JSON或XML的数据
HttpClient 获取返回类型为JSON或XML的数据 使用httpcomponents-client-4.1.3(下载页面:http://hc.apache.org/httpcomponents-client-ga/download.html 最新是5.20发布的4.2版本)向网页发送HTTP请求抓取数据。 我所调用的服务明确写了他们支持多种类型的返回结果,如下:  The conte
struts2返回值类型
action方法特点:可以没有返回值,如果有返回值,必须是string,action方法public
Struts2 返回JSON、XML的几种方式
详情请看(Struts2 返回JSON、XML的几种方式 ) 更多请看  (www.omob.cc) 返回JSON struts2要返回JSON,需要在Action中定义该变量,如data1,然后定义该变量的get、set方法。 第一种方式 将Action中定义了get方法的变量全部返回,==注意package必须extends= “json-default”==,对应的struts.x...
HTTP协议与XML
HTTP协议即超文本传输协议,它详细规定了浏览器和万维网服务器之间的通信规则,是通过因特网传送万维网文档的数据传送协议。 在使用PHP做HTTP服务端的时候,Apache为我们解析好了大部分的协议,并提供了非常方便的方法以供我们获取需要的信息。 其中,我们需要关心的两个全局变量$_GET和$HTTP_RAW_POST_DATA。Apache解析好请求的HTTP协议,把请求的get数据和post
HTTP协议处理状态和返回状态码
HTTP协议处理状态和返回状态码1.HTTP协议 HTTP协议(超文本传输协议)是一种属于应用层的面向对象的协议,因为他的简洁,快速。所以适用于分布式超媒体信息系统。于1990年提出,经过几年不断的完善。目前在www中的使用的就是HTTP协议。HTTP协议是一个基于请求与响应模式的,无状态的,应用层的协议,常基于TCP的连接方式,HTTp1.1版本中给出一种持续的机制,绝大多数的web开发都是
Struts2 result返回类型小结
在struts2的返回结果配置中,我们大部分情况使用默认的或者chain或者redirect,其实struts2还有很多其他类型的,今天我们就来看一下都有哪些类型。 打开struts2的源码中struts-default.xml文件,我们能看到如下配置 package name="struts-default"abstract="true"> result-types> r
通过HTTP协议发送XML数据并调用
1、发送xml数据给服务器 ,并非以请求参数方式发送: http://192.168.1.10:8080/video/manage.do?xml=....   服务器端代码:VideoManageAction.java     public ActionForward getXML(ActionMapping mapping, ActionForm form,