返回xml非chunked模式
在与第三方合作的过程中,响应报文是xml格式的。最开始没有进行处理,对方收到的报文是chunked模式。对方说目前不支持这个模式,于是我就去寻找了什么叫chunked模式,以及怎么去避免使用这种模式。 简单介绍一下chunked: Transfer-Encoding: chunked 表示输出的内容长度不能确定,普通的静态页面、图片之类的基本上都用不到这个。
Web服务器有时生成HTTPResponse无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。进行Chunked编码传输的HTTP Response会在消息头部设置:
Transfer-Encoding: chunked,表示Content Body将用Chunked编码传输内容。
简而言之:在httpresponse传输过程中,不知道要传输的内容的具体大小,所以就采用chunked(分块)模式,这样,有点类似于流媒体的赶脚。一段一段的传输。 那么,根据这个含义,想要去掉chunked模式,我们只需要把要传输的内容的大小告诉httpresponse即可了,就是: response.setContentLength(1000); response.setContentType("text/html;charset=UTF-8");// 解决中文乱码 response.setContentLength(rspString.length());//设置传输内容大小(注意:要在printWriter = response.getWriter();之前) //以下是将内容进行传输了 printWriter = response.getWriter(); printWriter.print(rspString); printWriter.flush(); printWriter.close(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |