Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Imgur错误400 Client.uploadString_C#_Imgur - Fatal编程技术网

C# Imgur错误400 Client.uploadString

C# Imgur错误400 Client.uploadString,c#,imgur,C#,Imgur,我有一段很长的代码要上传到imgur,我试着测试它,发现了一些bug,修复了它们。(也是在ofc网站的帮助下)但现在我得到了一个错误400 这是代码的一部分,也是它发生的地方 public static ImgurToken GetToken(string clientId, string clientSecret, string pin) { string Url = "https://api.imgur.com/oauth2/token/";

我有一段很长的代码要上传到imgur,我试着测试它,发现了一些bug,修复了它们。(也是在ofc网站的帮助下)但现在我得到了一个错误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没有尾随的
/
。将其更改为
https://api.imgur.com/oauth2/token
只是为了确定一下

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


当请求的语法不正确时,通常会返回,可能是您缺少的
pin
。只需确保您从用户处获得的pin已添加到
数据
字符串中,且不为null或空。

密码的作用是什么?而不是。我看它什么也没做。另外,我添加了GetKey类,正如您所看到的,它有一个字符串Pin,它是空的。你能用它做些什么吗?@Steppepper啊,我现在更明白了,我已经更新了我的答案我把HttpUtility放在哪里了?哦,我用
HttpUtility.UrlEncode(Data)
对它进行了编码,但它没有修复任何问题。是的,我修复了。虽然它确实给出了一个链接的红色文本。
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;
        }