如何在android中从open fire中检索聊天历史记录

如何在android中从open fire中检索聊天历史记录,android,xmpp,chat,openfire,Android,Xmpp,Chat,Openfire,我有一个聊天应用程序,我想检索两个用户之间的聊天历史,我有一个节检索聊天信息,这是 <iq type='get' id='pk1'> <list xmlns='urn:xmpp:archive' with='shrey27@sys1-pc'> <set xmlns='http://jabber.org/protocol/rsm'> <max>30</max> </set> </list> </iq&

我有一个聊天应用程序,我想检索两个用户之间的聊天历史,我有一个节检索聊天信息,这是

    <iq type='get' id='pk1'>
<list xmlns='urn:xmpp:archive'
with='shrey27@sys1-pc'>
<set xmlns='http://jabber.org/protocol/rsm'>
<max>30</max>
</set>
</list>
</iq>

30
现在,我的问题是如何将此节发送到服务器,以便获得响应。我已经安装了邮件存档插件,邮件得到了完美的存储。任何建议都将是有益的。。。 提前感谢

NSXMLElement *iQ = [NSXMLElement elementWithName:@"iq"];
[iQ addAttributeWithName:@"type" stringValue:@"get"];
[iQ addAttributeWithName:@"id" stringValue:@"987654321"];

NSXMLElement *list = [NSXMLElement elementWithName:@"list"];
[list addAttributeWithName:@"xmlns" stringValue:@"urn:xmpp:archive"];
[list addAttributeWithName:@"with" stringValue:@"bhushan@mydomain.com"];



NSXMLElement *set = [NSXMLElement elementWithName:@"set"];
[set addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/rsm"];

NSXMLElement *max = [NSXMLElement elementWithName:@"max"];
[max addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/rsm"];
max.stringValue = @"30";

[set addChild:max];

[list addChild:set];
[iQ addChild:list];
[[[self appDelegate] xmppStream] sendElement:iQ];

你可以这样打电话。希望这有帮助:)

你好,卡伦,谢谢这段有用的代码。当我在我的应用程序中执行代码时,服务器以服务不可用为响应,错误代码为503。你能告诉我哪里出了问题吗。响应以委托方法
-(BOOL)xmppStream:(xmppStream*)发送方didReceiveIQ:(XMPPIQ*)iq
的形式出现。谢谢。@Yogi我也面临同样的问题。你找到你的解决方案了吗?如果我在Swift 3中实现的话,我会得到错误501。功能未实现您还需要在Openfire服务器中安装Openfire插件,但您将无法获得所需的确切功能