1

数時間、私はこの問題を抱えていました。私はスマックAPIを学んでいます。問題は、バディ(ユーザー)を検索しているときに、一致するすべてのオプションが表示されることです。たとえば、次のユーザーがいます: -user -user1 -user2

「ユーザー」を検索すると、これらすべてのユーザーが返されます。正確に一致したユーザーを 1 人だけ返したいです。これどうやってするの?

Form searchForm = search.getSearchForm("search.localhost");
Form answerForm = searchForm.createAnswerForm();

answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", "user");

ReportedData data = search.getSearchResults(answerForm, "search.localhost");
....

ありがとうございました

4

1 に答える 1

0

正確な jid を検索する必要があります。サービス名が localhost で「jid」を検索している場合、いくつかのオプションがあります。

answerForm.setAnswer("search", "user@localhost");

また

answerForm.setAnswer("search", "user" + "@" + connection.getServiceName);

また

answerForm.setAnswer("search", "user@" + connection.getServiceName);

ReportedData の使用方法:

    if (data != null) {
       List<Row> rows = data.getRows();
       Iterator<Row> it = rows.iterator();
       while (it.hasNext()) {
           Row row = it.next();
           List<String> values = row.getValues("jid");
           Iterator<String> iterator = values.iterator();
           if (iterator.hasNext()) {
               String value = iterator.next();
               //Do what you want
           }
       }
    }
于 2015-03-26T12:42:46.823 に答える