在 java 中验证对 GitHub API 的 http 调用

Authenticate http call to GitHub APIs in java

我正在做一个需要多次调用 GitHub API 的项目,我达到了 60 次的限制。 我读到,通过身份验证,您可以获得 5000 作为限制,但我不明白如何在我的 java 程序中验证我的请求。我在 Github 上获得了身份验证令牌,这就是我在 java:

中构建请求的方式
// create client
HttpClient client = HttpClient.newHttpClient();

// create request
HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.github.com/repos/:owner/:repo/commits"))
                .build();

我应该在请求中添加什么来验证它? 我尝试添加 header authToken:myToken 但它没有用。

已解决:

一旦我在 GitHub 个人资料 > 设置 > 开发人员设置 > 个人访问令牌上获得令牌,我就将 header `"Authorization: Bearer "myToken" " 添加到 http 请求中,这样请求变为:

// create client
HttpClient client = HttpClient.newHttpClient();

// create request
HttpRequest request = HttpRequest.newBuilder().header("Authorization","Bearer <myToken>")
                .uri(URI.create("https://api.github.com/repos/:owner/:repo/commits"))
                .build();

您需要将 Http 请求 header Authorization 添加到您的请求中,并且 header 应该包含您的令牌。因此,如果您的代码是在 Java 11 或更高版本上编写的,那么您需要将代码更改为:

// create client
HttpClient client = HttpClient.newHttpClient();

// create request
HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.github.com/repos/:owner/:repo/commits"))
                .header("Authorization", "your-tocken")
                .build();