gpt4 book ai didi

android - XMPP IQ 结果解析问题

转载 作者:行者123 更新时间:2023-11-29 01:59:39 29 4
gpt4 key购买 nike

我正在使用 eclipse、java 和 asmack 构建一个 XMPP 聊天客户端应用程序。使用教程和许多谷歌搜索,我设法使好友列表正常工作,实际聊天也能正常工作。 我的问题是搜索更多好友以添加到我的联系人列表中。要发送的 XML 示例如下:http://xmpp.org/extensions/xep-0055.html 我的要求是:

<iq
id="search123"
from="name3@webserv.xxx.com/name3"
to="search.xxx.zzz.com"
type="set" >
<query xmlns="jabber:iq:search" >
<nick>
android
</nick>
</query>
</iq>

我以为我得到的回应是/是这样的:

<iq
id="search123"
from="search.xxx.zzz.com"
to="name3@webserv.telebroad.com/Smack"
type="result" >
</iq>

但是使用 connConfig.setDebuggerEnabled(true); (和一个在线 Telnet 客户端)我设法发现服务器实际上工作正常并且它正在发送请求的结果,但我只是得到你在上面看到的内容。 我已经这样做了 4 天,我的自尊心很低:P 这是我关于 IQ 请求和响应的代码:

Packet asdf = new Packet() {
@Override
public String toXML() {
return "<iq type='set'"+
" from='name3@webserv.xxx.com/name3'"+
" to='search.xxx.zzz.com'"+
" id='search2'"+
" xml:lang='en'>"+
" <query xmlns='jabber:iq:search'>"+
" <nick>Android</nick>"+
" </query>"+
" </iq>";
}
};


ChatList.connection.sendPacket(asdf);
Log.e("packet", "request = "+ asdf.toXML());
PacketFilter filter = new IQTypeFilter(IQ.Type.RESULT);
ChatList.connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
IQ iq = (IQ)packet;


Log.e("response","incoming packet : "+ packet.toXML());
Log.e("response","incoming packet2 : "+ packet.toString());

}
}, filter);

我尝试了很多 TypeFilters 都无济于事。我很难过!!

底线:

1.请求被服务器正确接受;

2.服务器响应正确(调试器这么说);

3.any response.toString 或 toXML 从上面打印出类型结果 XML(没有 type='result'> 之后的实际项目。

4.我的这个应用程序的最终版本已经逾期了大约一周...帮助! :)

最佳答案

尝试添加

ProviderManager pm = ProviderManager.getInstance(); 
pm.addIQProvider( "query","jabber:iq:search",new UserSearch.Provider());
pm.addExtensionProvider("x","jabber:x:data", new DataFormProvider());

在建立连接之前。

关于android - XMPP IQ 结果解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290445/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com