Получить учетную запись пользователя - PullRequest
0 голосов
/ 04 февраля 2010

Я использовал следующую кодировку для отображения учетных записей пользователей в моем домене. Но в этой кодировке он отображает только первые 100 записей. Но в моем домене почти 500 учетных записей пользователей. Я не знаю, что проблема в этой кодировке

import java.net.URL;
import java.util.List;

import com.google.gdata.client.appsforyourdomain.UserService;
import com.google.gdata.data.appsforyourdomain.provisioning.UserEntry;
import com.google.gdata.data.appsforyourdomain.provisioning.UserFeed;

public class Readuser {
       public int i3;
       public  String rn[]=new String[100];



    public void read(){
        try
        {

                // Create a new Apps Provisioning service
                UserService myService = new UserService("My Application");
                myService.setUserCredentials(admin,password);

                // Get a list of all entries
                URL metafeedUrl = new URL("https://www.google.com/a/feeds/"+domain+"/user/2.0/");
                System.out.println("Getting user entries...\n");
                UserFeed resultFeed = myService.getFeed(metafeedUrl, UserFeed.class);
                List<UserEntry> entries = resultFeed.getEntries();

                for(i3=0; i3<entries.size(); i3++) {
                  UserEntry entry = entries.get(i3);
                  rn[i3]=  entry.getTitle().getPlainText();
                  System.out.println(rn[i3]);
                }
                System.out.println("\nTotal Entries: "+entries.size());
              }
             catch(Exception e) { System.out.print(e);}
         }

    public static void main(String args[])
    {
    Readuser ru=new Readuser();
    ru.read();
    }
}

Ответы [ 3 ]

5 голосов
/ 04 февраля 2010

Вы выделяете только 100 записей.

public  String rn[]=new String[100];
1 голос
/ 04 февраля 2010

Нет необходимости в массиве строк (String []). Массивы имеют фиксированный размер; и в этом случае вы выделили 100 «слотов» для строк, и когда вы пытаетесь назначить строку на позицию 100 (вы знаете, 101-я строка), она терпит неудачу.

В конце вы ловите исключение. Распечатайте трассировку стека, чтобы узнать, что происходит

catch(Exception e) { 
    e.printStackTrace();
} 

Научитесь читать, узнайте, что там написано ... Однако вы не должны ловить исключение в этом методе. Лучше прервать то, что делала программа. Поймай это в своем основном методе - просто напечатай или войди в журнал, чтобы исправить ошибку программирования.

Во всяком случае; В результате вы получите список записей пользователя. Списки являются частью (java.util) структуры коллекций. Коллекции имеют много функций; в этом случае вы хотите перебрать все записи в списке. Вы можете сделать это с помощью метода iterator () - прочитайте javadoc ... ИЛИ , для которого вы можете использовать синтаксический сахар for-loop:

for( UserEntry user : entries ) {
    // user is the current UserEntry
    System.out.println(user.getTitle().getPlainText()); 
} 

Переменные i3 и rn бесполезны ... Они не должны быть переменными класса, и если вам нужны «временные» переменные, определите их рядом с тем местом, где вы собираетесь их использовать.

Что касается именования переменных, то имя типа «запись» менее полезно, чем «пользователь». На самом деле класс UserEntry, вероятно, должен называться просто User, но я не знаю об этом API, так что ...

1 голос
/ 04 февраля 2010

Подсказка из вашего кода: public String rn[]=new String[100];

Вам действительно нужно, чтобы i3 и rn были в классе? Вам действительно нужен рН? Список выглядит более удобным как объект, чем строка [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...