Imgur error 400 Client.uploadString

本文关键字:uploadString Client error Imgur | 更新日期: 2024-10-18 10:00:37

我有一段很长的代码要上传到imgur,试着测试它,发现了一些错误,修复了它们。(也是在这个网站的帮助下。)但现在我得到了一个错误400。

这是代码的一部分,也是发生的地方

public static ImgurToken GetToken(string clientId, string clientSecret, string pin)
        {
            string Url = "https://api.imgur.com/oauth2/token/";
            string DataTemplate = "client_id={0}&client_secret={1}&grant_type=pin&pin={2}";
            string Data = String.Format(DataTemplate, clientId, clientSecret, pin);
            using (WebClient Client = new WebClient())
            {
                string ApiResponse = Client.UploadString(Url, Data); //Error 400
                var Deserializer = new JavaScriptSerializer();
                var Response = Deserializer.DeserializeObject(ApiResponse) as Dictionary<string, object>;
                return new ImgurToken()
                {
                    AccessToken = Convert.ToString(Response["access_token"]),
                    RefreshToken = Convert.ToString(Response["refresh_token"])
                };
            }
        }

我想我做了数据和URL,对吗?在Imgur API网站上也有声明。

编辑:刚刚注意到,我的密码是空的。这是对的吗
编辑2:我检查了一下,我的ClientSecret显示为红色文本,但我确信它是正确的。

GetPin:

public static string GetPin(string clientId, string clientSecret)
        {
            string Pin = String.Empty;
            string OAuthUrlTemplate = "https://api.imgur.com/oauth2/authorize?client_id={0}&response_type={1}&state={2}";
            string RequestUrl = String.Format(OAuthUrlTemplate, clientId, "pin", "blah");
            return Pin;
        }

Imgur error 400 Client.uploadString

在imgur文档中,url没有尾随的/。将其更改为https://api.imgur.com/oauth2/token只是为了确定。

此外,您可能需要对Data字符串进行url编码。您可以使用System.Web.HttpUtility.UrlEncode()来执行此操作。

http 400错误通常在请求语法不正确时返回,可能是缺少pin。只需确保从用户那里获得的pin已添加到Data字符串中,并且不是null或空的。