/**
* 不带消息体的响应方法
*
* @param code 响应码
* @param request TODO
* @param response
* @throws IOException 当响应输出异常时抛出
*/
public static void response(int code, HttpServletRequest request, HttpServletResponse response)
throws IOException
{
// 必选
response.setHeader(APIVERSION_KEY, apiVersion);
response.setHeader(TIMESTAMP_KEY, sf.format(new Date()));
response.setHeader(RESULT_CODE_KEY, String.valueOf(code));
// add by c59623 为了便于记录系统错误话单,需要在request设置错误码,以便在过滤器能识辨
request.setAttribute(RESULT_CODE_KEY, String.valueOf(code));
}
/**
* 处理带消息内容处理。包括设置返回参数返回消息内容
*
* @param xml 响应消息内容
* @param request http请求
* @param response http响应
* @throws IOException 当响应输出异常时抛出
*
*/
public static void response(String xml, HttpServletRequest request, HttpServletResponse response)
throws IOException
{
String code = (String)request.getAttribute("resultCode");
if (null == code || "".equals(code))
{
code = String.valueOf(TerminalCodes.SUCCESS);
}
int resultCode = StringTools.toInt(code, TerminalCodes.SUCCESS);
// 默认返回
response(resultCode, request, response);
/*
* 以下为消息体返回处理
*/
ByteArrayOutputStream baseOut = new ByteArrayOutputStream(512);
// 默认输出到ByteArrayOutputStream中
OutputStream out = baseOut;
String acceptEncoding = StrUtil.trim(request.getHeader(ACCEPT_ENCODING_KEY));
if (GZIP.equalsIgnoreCase(acceptEncoding))
{
// 内容压缩类型
response.setHeader(CONTENT_ENCODING_KEY, acceptEncoding);
// 支持gzip压缩时压缩流也输出到ByteArrayOutputStream中
out = new GZIPOutputStream(baseOut);
}
byte[] xmlHead = XMLHEAD.getBytes(UTF8);
byte[] start = START.getBytes(UTF8);
byte[] xmlBytes = xml.getBytes(UTF8);
byte[] end = END.getBytes(UTF8);
int origSize = xmlHead.length + start.length + xmlBytes.length + end.length;
out.write(xmlHead);
out.write(start);
out.write(xmlBytes);
out.write(end);
// 关闭流,确保所有输出都结束
out.close();
// 必选:消息内容长度
response.setHeader(CONTENT_LENGTH_KEY, String.valueOf(baseOut.size()));
response.setHeader(ORIG_CONTENT_LENGTH_KEY, String.valueOf(origSize));
// 可选
response.setCharacterEncoding(UTF8);
response.setHeader(CONTENT_TYPE_KEY, "application/xml");
// 返回消息内容
baseOut.writeTo(response.getOutputStream());
}
分享到:
相关推荐
Android之Http通信——2.详解Http的消息头与响应头中的demo,简单的例子
带复选框的CTreeCtrl响应复选消息,点击时同时设置其父项和子项,能够自能判断。
iziToast.js是一款纯js跨浏览器响应式消息通知插件。该消息通知插件体积小,使用简单。消息显示时带CSS3动画效果,时尚大方。它的特点还有: 自带4种主题效果: info, warning, error 和 success。 可以自定义主题...
代码包括一个CListCtrl继承类,为CListCtrl上的每一项添加CCheckBox,并重载WM_LBUTTONDOWN消息,将鼠标定位到每项的CheckBox上面,响应打击消息.
notyf.js是一款超级简单的响应式纯js消息通知插件。它使用纯javascript来制作,没有任何外部依赖,通过简单的设置,即可生成漂亮的消息通知效果。
notyf.js是一款超级简单的响应式纯js消息通知插件。它使用纯javascript来制作,没有任何外部依赖,通过简单的设置,即可生成漂亮的消息通知效果。
3.OnGetMinMaxInfo() 该函数为消息响应函数,响应的是WM_GETMINMAXINFO消息,允许设置窗口的最大或者最小尺寸 4.OnNcCreate() 该函数也是一个消息响应函数,响应WM_NCCREATE消息,发送消息以告诉窗口的客户区即将被...
notyf.js是一款超级简单的响应式纯js消息通知插件。它使用纯javascript来制作,没有任何外部依赖,通过简单的设置,即可生成漂亮的消息通知效果。
3.TX微博等很多应用均采用服务器推技术,你还在用Ajax? 网上关于服务器推技术的文章多,但关于.net 的版本更是少,更不用说完整的可用的实例,在此提供给广大朋友,希望对你们能有用! 此cometlib修改至网上讨论的...
点击了按钮的全透区时 按钮不响应 点击消息继续往下传 实现的方法 请阅读以下函数: BYTE CWUIBtnAnoma::GetCurPointAlpha POINT point { BYTE byteAlpha 255; CWidgetCommand cmdWdg this ; RECT ...
本章我们主要学习的内容有: Repeater的使用 可选项设置(Options) Repeater的使用 在渗透测试过程中,我们经常使用Repeater来进行请求与响应的消息验证分析,比如修改请求参数,验证输入的漏洞;修改请求参数,验证逻辑...
本文实例讲述了微信公众平台消息接口校验与消息接口响应的方法。分享给大家供大家参考。具体分析如下: 开发微信公众平台消息接口过程中,我们首先需要验证消息接口的有效性,验证通过后,才可以进行其他开发,首先我们...
使用多线程不阻塞的方式,内置自动消息接收和发送的机制,完成对多个客户端连接的消息处理,保证数据处理及时和高量并发的效果
AMF -查看Flash Remoting / Flex Remoting消息的内容作为一个树 重复请求以测试后端更改 编辑请求以测试不同的输入 用于拦截和编辑请求或响应的断点 使用W3C验证器验证已记录的HTML、CSS和RSS/atom响应 更多...
应用程序设计为在 Amazon Elastic Beanstalk 上运行,该应用程序响应从上传到特定 S3 存储桶的新图像生成的 SQS 消息。 flask-images 会将新上传的图像调整为一组预先配置的尺寸,并将图像重新上传到特定尺寸的...
本文实例讲述了Yii框架响应组件用法。分享给大家供大家参考,...有了这个响应组件之后,我们可以对响应消息进行一些设置了,比如设置响应的状态码。 $response->setStatusCode(404); //两种方法都可以设置 $respons
扁平化 响应式设计,兼容电脑、平板和手机访问 主题设置面板新增多种广告位,PC端和移动设备各不相同 自带7 小工具,可随意设置侧栏分类和浮动块。 基本SEO:首页、分类、文章等页面都可以设置关键词和描述 内置实用...
Windows是一种基于消息的交互式GUI操作系统,用户的操作主要通过鼠标和键盘进行。...本章先介绍鼠标与键盘消息及其响应,然后再讨论设置与隐藏光标的方法,最后给出一个综合利用鼠标与键盘消息响应和光标设置的实例。
delphi自制控件,安装控件后,将控件添加到Form上,设置DropEnable属性,添加事件,就能让Form窗口接收拖放文件消息,轻松实现Form响应拖放文件功能。
Chitchatz :sparkles: 关于该项目我们的项目是一个响应Swift的网站。 我们将开发一个网站,以向whatsapp文本发送自动的whatsapp消息,回复和计划的消息。 如果有人要在其whatsapp中使用此功能,则可以联系我们的网站...