英文:
What's causing the 'API rate limit exceeded' error in Rust's Reqwest even though I've included my Github token?
问题
尽管代码中包含了GitHub令牌,但由于某种原因,我仍然无法使用更多的GitHub Rest API配额。
我正在使用Rust中的Reqwest来处理所有请求。我认为可能是我输入令牌时出错了。
代码
let mut headers = HeaderMap::new();
headers.insert(USER_AGENT, HeaderValue::from_static("SBSixteen"));
headers.insert(AUTHORIZATION,HeaderValue::from_static("github_pat_****************************************************") );
let client = Client::builder().default_headers(headers).build().unwrap();
let url = format!("https://api.github.com/users/{}",data.git_username);
println!("{}", &url);
let r1 = client.get(&url).send().await.unwrap().text().await.unwrap();
println!("{}", &r1);
错误
{"message":"API rate limit exceeded for ***.***.**.*. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}
thread 'tokio-runtime-worker' panicked at 'called `Option::unwrap()` on a `None` value', src\NER_EZH.rs:632:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
我尝试了多种可能的组合,但仍然无法正确设置我的令牌。
英文:
Although the code has the Github token included, for some reason I am still unable to avail more GitHub Rest API quota.
I am using Reqwest for Rust to process all requests. I believe that I may be entering my token incorrectly.
The Code
let mut headers = HeaderMap::new();
headers.insert(USER_AGENT, HeaderValue::from_static("SBSixteen"));
headers.insert(AUTHORIZATION,HeaderValue::from_static("github_pat_****************************************************") );
let client = Client::builder().default_headers(headers).build().unwrap();
let url = format!("https://api.github.com/users/{}",data.git_username);
println!("{}", &url);
let r1 = client.get(&url).send().await.unwrap().text().await.unwrap();
println!("{}", &r1);
The Error
{"message":"API rate limit exceeded for ***.***.**.*. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}
thread 'tokio-runtime-worker' panicked at 'called `Option::unwrap()` on a `None` value', src\NER_EZH.rs:632:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I tried multiple possible combinations but I am unable to set my token correctly.
答案1
得分: 2
从GitHub API文档中,我们可以看到授权令牌应该以"bearer tokens"的形式呈现。只需在令牌前加上 "Bearer " 前缀:
headers.insert(
AUTHORIZATION,
HeaderValue::from_static("Bearer github_pat_***..."),
);
英文:
From the GitHub API documentation, we can see that authorization tokens are expected to be presented as "bearer tokens." You just need to prefix the token with "Bearer "
:
headers.insert(
AUTHORIZATION,
HeaderValue::from_static("Bearer github_pat_***..."),
);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论