我有一段很长的代码要上传,试着测试,找到一些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对吧?它还在Imgur网站上说明了这一点。
编辑:刚刚注意到,我的引脚是空的。是这样的吗?
编辑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;
}发布于 2013-12-16 20:57:07
在印古尔文献中,url没有尾随的/。将其更改为https://api.imgur.com/oauth2/token,以确保。
此外,您可能必须对Data字符串进行url编码。您可以使用System.Web.HttpUtility.UrlEncode()来完成这一任务。
当请求有错误的语法时,通常会返回http 400错误,可能是缺少的pin。只需确保您从用户那里获得的引脚被添加到Data字符串中,而不是空或空。
https://stackoverflow.com/questions/20620516
复制相似问题