这是我的代码。
我可以以某种方式提供一个URL,以便该程序检查带有存储库的所有站点吗?关键是我希望一次下载页面= 1,页面= 2,页面= 3中的数据。也许所有页面都有通用格式吗?
第1页和第2页上有30个存储库,而第1页和第2页上的程序仅下载29。有时从第3页上有5个存储库,但有时有6个存储库。为什么?
公共类主要{
public static void main(String[] args) throws Exception {
String url = "https://api.github.com/users/allegro/repos?pagelen=30&page=1";
String data = readUrl(url);
JSONArray jsonArr = new JSONArray(data);
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject jsonObj = jsonArr.getJSONObject(i);
System.out.println(jsonObj.get("name") + " : " + jsonObj.get("updated_at"));
}
}
private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);
return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
}
编辑 通过此行应用程序,我返回了65个回购中的65个。
String url1 = "https://api.github.com/users/allegro/repos?pagelen=1000";
String url2 = "https://api.github.com/users/allegro/repos?pagelen=1000&page=2";
String url3 = "https://api.github.com/users/allegro/repos?pagelen=1000&page=3";
String data1 = readUrl(url1);
String data2 = readUrl(url2);
String data3 = readUrl(url3);
JSONArray jsonArr1 = new JSONArray(data1);
JSONArray jsonArr2 = new JSONArray(data2);
JSONArray jsonArr3 = new JSONArray(data3);
for (int i = 0; i < jsonArr1.length(); i++) {
JSONObject jsonObj = jsonArr1.getJSONObject(i);
System.out.println(jsonObj.get("name") + " : " + jsonObj.get("updated_at"));
}
for (int i = 0; i < jsonArr2.length(); i++) {
JSONObject jsonObj = jsonArr2.getJSONObject(i);
System.out.println(jsonObj.get("name") + " : " + jsonObj.get("updated_at"));
}
for (int i = 0; i < jsonArr3.length(); i++) {
JSONObject jsonObj = jsonArr3.getJSONObject(i);
System.out.println(jsonObj.get("name") + " : " + jsonObj.get("updated_at"));
}
答案 0 :(得分:0)
Github搜索请求返回多个项目,默认情况下将被分页为30个项目。在大多数情况下,您可以使用?per_page
参数将每页的项目数增加到最多100。因此,您的搜索请求网址应为https://api.github.com/users/allegro/repos?per_page=100&page=page_no
。参见Github pagination。