XMPP UserSearch 使用最新的 smack 4.1.3 得到远程服务器未发现错误
XMPP UserSearch using latest smack 4.1.3 got remote server no found error
这是我正在使用的:
开火 3.10.2
击掌 4.1.3
环境:Android
我正在尝试搜索注册用户,但我一直找不到。我尝试了很多不同的组合。我还尝试了旧版本的 smack。
这是我最新修改的代码:
UserSearchManager userSearchManager = new UserSearchManager(connection);
Form searchForm = null;
List<ReportedData.Row> list = null;
try {
userSearchManager.getSearchForm("search." + connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", userName);
answerForm.setAnswer("Name", true);
answerForm.setAnswer("search", userName);
ReportedData data = userSearchManager.getSearchResults(answerForm, "search." + connection.getServiceName());
list = data.getRows();
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
Log.e(LOG_TAG, e.getMessage());
} catch (SmackException.NotConnectedException e) {
Log.e(LOG_TAG, e.getMessage());
}
我会得到这个错误
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: 未找到远程服务器 - 取消
在线,
Form searchForm = manager.getSearchForm("search." + connection.getServiceName());
我不知道我是否错过了在 openfire 服务器上配置某些东西,或者我是否需要在开始搜索之前设置一些东西。
我的解决方法是获取注册用户的完整列表,然后从那里进行搜索,但我不确定如何实现。
登录后,花名册中仅包含我的朋友和群组。
有人能给我指出正确的方向吗?
您正在尝试搜索服务器 "search." + connection.getServiceName()
上的用户,但您的服务器告诉您找不到该服务器。您似乎没有在 OpenFire 中设置搜索服务器,或者您使用了错误的地址。
这是我正在使用的: 开火 3.10.2 击掌 4.1.3 环境:Android
我正在尝试搜索注册用户,但我一直找不到。我尝试了很多不同的组合。我还尝试了旧版本的 smack。 这是我最新修改的代码:
UserSearchManager userSearchManager = new UserSearchManager(connection);
Form searchForm = null;
List<ReportedData.Row> list = null;
try {
userSearchManager.getSearchForm("search." + connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", userName);
answerForm.setAnswer("Name", true);
answerForm.setAnswer("search", userName);
ReportedData data = userSearchManager.getSearchResults(answerForm, "search." + connection.getServiceName());
list = data.getRows();
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
Log.e(LOG_TAG, e.getMessage());
} catch (SmackException.NotConnectedException e) {
Log.e(LOG_TAG, e.getMessage());
}
我会得到这个错误 org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: 未找到远程服务器 - 取消 在线,
Form searchForm = manager.getSearchForm("search." + connection.getServiceName());
我不知道我是否错过了在 openfire 服务器上配置某些东西,或者我是否需要在开始搜索之前设置一些东西。 我的解决方法是获取注册用户的完整列表,然后从那里进行搜索,但我不确定如何实现。 登录后,花名册中仅包含我的朋友和群组。 有人能给我指出正确的方向吗?
您正在尝试搜索服务器 "search." + connection.getServiceName()
上的用户,但您的服务器告诉您找不到该服务器。您似乎没有在 OpenFire 中设置搜索服务器,或者您使用了错误的地址。