vb.net – Google OAuth令牌错误 – 400错误请求
发布时间:2020-12-17 00:09:07 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用OAuth2验证我的应用程序并使用“已安装的应用程序”流程(获取auth-code然后请求令牌).在GetResponse()行上请求令牌时,我收到400错误请求错误.我的代码如下: Public Sub New() Dim tokenRequest As WebRequest = WebRequest.Create("https://a
我正在尝试使用OAuth2验证我的应用程序并使用“已安装的应用程序”流程(获取auth-code然后请求令牌).在GetResponse()行上请求令牌时,我收到400错误请求错误.我的代码如下:
Public Sub New() Dim tokenRequest As WebRequest = WebRequest.Create("https://accounts.google.com/o/oauth2/token") Dim requestString As String = "code=<auth-code>" _ & "&client_id=<client_id>" _ & "&client_secret=<client_secret>" _ & "&redirect_uri=http://localhost" _ & "&grant_type=authorization_code" byteArray = StrToByteArray(System.Web.HttpUtility.UrlEncode(requestString)) tokenRequest.Credentials = CredentialCache.DefaultCredentials tokenRequest.Method = "POST" tokenRequest.ContentLength = byteArray.Length tokenRequest.ContentType = "application/x-www-form-urlencoded" Dim dataStream As Stream = tokenRequest.GetRequestStream() dataStream.Write(byteArray,byteArray.Length) dataStream.Close() Console.WriteLine("Getting response...") 'Get response Try Dim response As WebResponse = tokenRequest.GetResponse() Console.WriteLine(CType(response,HttpWebResponse).StatusDescription) Dim data As Stream = response.GetResponseStream Array.Resize(byteArray,4096) Array.Clear(byteArray,byteArray.Length) data.Read(byteArray,byteArray.Length) response.Close() Catch wex As WebException Console.WriteLine("ERROR! : ") Console.WriteLine(wex.Message) Console.WriteLine(wex.Status) Console.WriteLine(wex.Data) Console.WriteLine(wex.InnerException.Message) Console.WriteLine(wex.HelpLink) End Try End Sub 错误的具体情况如下: The remote server returned an error: (400) Bad Request. 7 System.Collections.ListDictionaryInternal System.NullReferenceException: Object reference not set to an instance of an obj ect. at GADownload.GoogleAnalytics..ctor() in ***.vb:line 86 at GADownload.Main1.Main(String[] args) in ****.vb:line 18 我已经看过Google GetAccessToken : Bad Request 400和Google GData .Net OAuthUtil.GetAccessToken 400 Bad Request,但还没有找到适合此代码的解决方案.我已经检查了所有建议的解决方案并实施了它们,但到目前为止还没有运气.
看起来您没有为参数auth-code,client_id或client_secret设置值.
您可以使用curl命令调试这些参数,以查看这是否是问题的根源.例如 curl -X POST -d "code=<auth-code>&client_id=<client_id>&client_secret=<client_secret>"&grant_type=authorization_code" http://localhost:8000/auth/token (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |