如何解决Angular 为获取请求、cURL、Python 和获取工作生成 429 状态码
我正在开发一个足够简单的网站,我需要对 Imgur 的 API 执行获取请求。使用以下工作正常:
curl -v --location --request GET 'https://api.imgur.com/3/album/WFWR56Z/images' \
--header 'Authorization: Client-ID {{clientId}}'
以下 Python 3 代码也是如此:
import requests
url = "https://api.imgur.com/3/album/WFWR56Z/images"
headers = {
'Authorization': 'Client-ID {{clientId}}'
}
response = requests.request("GET",url,headers=headers,data=payload)
设置一个简单的示例并使用 Apache 和 fetch 在本地主机上提供它也可以:
var myHeaders = new Headers();
myHeaders.append("Authorization","Client-ID {{clientId}}");
var requestOptions = {
method: 'GET',headers: myHeaders,redirect: 'follow'
};
fetch("https://api.imgur.com/3/album/WFWR56Z/images\n",requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error',error));
但是,当我像这样使用 Angular 的 HttpClient 时:
constructor(private http: HttpClient) { }
getImageLinks(): void {
const headers = new HttpHeaders(
{
'Authorization': "Client-ID {{clientId}}",});
this.http.get("https://api.imgur.com/3/album/WFWR56Z/images",{ headers }).subscribe(data => {
console.log(data);
})
}
}
我几乎总是收到 429 速率限制错误。这种情况很少发生,但我似乎无法确定它何时以及为何设法返回。
解决方法
感谢@Clashsoft,我将查询下载为cURL命令并一一删除标题以找到违规标题:
-H 'referer: http://localhost:4200/'
我用这个修复的: Remove http referer
具体来说,我补充说
<meta name="referrer" content="no-referrer" />
给我的 index.html
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。