tigase 启用Http Rest API 问题整理
来源:互联网 发布:直销源码 编辑:程序博客网 时间:2024/06/06 12:42
--comp-name-1=http
--comp-class-1=tigase.http.HttpMessageReceiver
http/ports[i]=8080
http/api-keys[s]=open_access
#http/8080/domain=xmpp.iyw
http/api-key=open_access
http/server-class[s]=tigase.http.jetty.JettyStandaloneHttpServer
//Stream.groovy用于发送消息的脚本
class Stream extends tigase.http.rest.Handler {
public Stream() {
/**
*description = [
* regex : "/{to_jid}",
* POST : [ info:'Send XMPP stanza', description: """Sends passed HTTP content as XMPP stanza."""]]
*/
regex = /\/(.*)/
isAsync = true
decodeContent = false
//requireRole 可是设置未 null 、user 、admin ,如果这是了 非 null,在调用http发送消息时,需要对用户进行认证,我这里不需要认证直接发送,所以设置未null
requiredRole = null
//requireRole设置未null后 需要去掉user参数 ,注释掉
execPost = { Service service, callback, /*user,*/ HttpServletRequest request, to ->
char[] data = request.getReader().getText()?.toCharArray();
if (data == null || data.length == 0) {
callback({ req, HttpServletResponse resp ->
resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
})
return;
}
SimpleParser parser = SingletonFactory.getParserInstance();
DomBuilderHandler domHandler = new DomBuilderHandler();
parser.parse(domHandler, data, 0, data.length);
Element packetEl = domHandler.getParsedElements().poll();
if (packetEl == null) {
callback({ req, HttpServletResponse resp ->
resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
})
return;
}
if (to != null) {
to = to.trim();
if (!to.isEmpty()) {
packetEl.setAttribute("to", to);
}
}
Packet packet = Packet.packetInstance(packetEl);
def responseHandler = (packet.getElemName() == "iq" && packet.getAttribute("from") == null) ? { Packet result ->
callback({ req, HttpServletResponse resp ->
def outBytes = result.getElement().toString().getBytes();
resp.setContentType("application/xml");
resp.setContentLength(outBytes.length);
resp.getOutputStream().write(outBytes);
});
} : null;
service.sendPacket(packet, null, responseHandler);
if (responseHandler == null) {
callback("");
}
}
}
}
- tigase 启用Http Rest API 问题整理
- tigase rest Api 发送消息 解决消息中文乱码问题
- Spring REST API整理
- OpenStack REST API问题
- mongodb 自带 http REST API
- Labview 基于REST API 实现HTTP客户端
- tigase遇到问题集锦
- SringMVC中REST Api的400问题
- tigase
- tigase
- REST API
- REST api
- rest api
- REST API
- REST API
- Rest API
- chrom插件DHC - REST/HTTP API Client使用教程
- HTTP API响应数据规范整理
- 2017 年建议学习的编程语言、框架和工具
- 海龟绘图-python turtle学习笔记2
- 《恋爱的犀牛》
- 单行函数の转换函数
- c语言数据结构1——线性表链式存储
- tigase 启用Http Rest API 问题整理
- maven updateProject的时候,pom文件报错until the update interval of central has elapsed or updates are forced
- 第十六周 项目 1 - 验证算法之(1)直接插入排序
- pg主备切换
- Spring_Struts_Hibernate框架整合
- Atitit.软件开发的几大规则,法则,与原则Principle v3
- angularJS1界面跳转
- 高德地图报错java.lang.UnsatisfiedLinkError: Native method not found
- AndroidStudio快捷键设置2