在 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();
我正在做一个需要多次调用 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();