我的方法看起来像这样:
static void search() throws IOException {
GitHub gitHub = GitHubBuilder
.fromEnvironment()
.withPassword(MyAuthData.LOGIN,MyAuthData.PASSWORD)
.withRateLimitHandler(RateLimitHandler.WAIT)
.build();
GHUserSearchBuilder searchBuilder = gitHub.searchUsers().language("Russian").location("Moscow");
List<GHUser> users = searchBuilder.list().asList();
for(GHUser user: users){
System.out.println(user.getName()+" "+user.getEmail()+" "+user.getCompany());}
System.out.println("Total: "+searchBuilder.list().getTotalCount());
}
那就是我的日志:
Exception in thread "main" java.lang.Error: java.io.IOException: {"message":"API rate limit exceeded for alexey-semenov.","documentation_url":"https://developer.github.com/v3/#rate-limiting"}
at org.kohsuke.github.Requester$1.fetch(Requester.java:399)
at org.kohsuke.github.Requester$1.hasNext(Requester.java:366)
at org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:49)
at org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)
at org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)
at org.kohsuke.github.PagedIterable.asList(PagedIterable.java:21)
at com.company.Searcher.search(Searcher.java:34)
at com.company.Main.main(Main.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.io.IOException: {"message":"API rate limit exceeded for alexey-semenov.","documentation_url":"httpss://developer.github.com/v3/#rate-limiting"}
at org.kohsuke.github.Requester.handleApiError(Requester.java:506)
at org.kohsuke.github.Requester$1.fetch(Requester.java:395)
... 12 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/search/users?q=language%3ARussian+location%3AMoscow&page=31
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.kohsuke.github.Requester.parse(Requester.java:461)
at org.kohsuke.github.Requester.access$300(Requester.java:64)
at org.kohsuke.github.Requester$1.fetch(Requester.java:390)
... 12 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: httpss://api.github.com/search/users?q=language%3ARussian+location%3AMoscow&page=31
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at org.kohsuke.github.Requester.parse(Requester.java:457)
... 14 more
谁面对类似的事情?如何在此处进行授权?
最佳答案
您的身份验证正确-请注意,API对此消息进行了回复:
API速率限制超过了Alexey-Semenov
这意味着authentication成功(因为您的帐户被识别),但是stepped over the rate limit则为5000 reqs /小时(每位用户)。如果您未正确进行身份验证,则消息将是这样的:
超出xxx.xxx.xxx.xxx的API速率限制。 (但是,这是个好消息:通过身份验证的请求具有更高的速率限制。有关更多详细信息,请查阅文档。)