调用Imgur图片上传API遇429 too many requests错误求助
问题描述
我从Imgur官方教程复制了以下C#代码:
public static async Task Main(string[] args) { var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://api.imgur.com/3/image"); request.Headers.Add("Authorization", $"Client-ID {apiKey}"); var content = new MultipartFormDataContent { { new StreamContent(File.OpenRead("C:\\Users\\EUGENE\\Desktop\\HEAL.png")), "image", "C:\\Users\\EUGENE\\Desktop\\HEAL.png" }, { new StringContent("image"), "type" }, { new StringContent("Simple upload"), "title" }, { new StringContent("This is a simple image upload in Imgur"), "description" } }; request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); }
运行后返回状态码429,响应信息为too many requests。我是首次尝试该操作,未触发过限额,用Postman测试也出现同样错误。确认创建API的操作没有问题,请问问题出在哪里?
可能的原因及解决方法
- IP地址被风控限制:Imgur的API可能会对有过频繁请求记录的IP进行临时限制,哪怕是你个人首次使用,也可能该IP之前被其他用户用来触发过限额。可以尝试切换网络(比如使用手机热点),或者等待一段时间后再测试。
- Client-ID未正确生效或配置:检查
{apiKey}是否替换成了正确的Client-ID,注意不要包含多余的空格或符号。另外,新创建的Client-ID可能需要几分钟时间生效,刚创建完就发起请求可能会触发异常限制。 - 请求参数冗余:代码中添加的
type字段设为"image"是多余的,上传本地文件时无需指定这个参数,移除该字段后再尝试请求。 - 请求头格式错误:确认
Authorization头的格式是Client-ID YOUR_CLIENT_ID,没有拼写错误,比如不要写成ClientID或者漏掉Client-ID与ID之间的空格。
内容的提问来源于stack exchange,提问作者MaltrzD
相关产品推荐
相关产品推荐

