private async Task<TokenResult> AccessTokenAsync(GrantType grantType, string refreshToken = null, string userName = null, string password = null, string authorizationCode = null, string redirectUri = null) { var parameters = new Dictionary<string, string> { { "grant_type", grantType.GetText() } }; if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password)) { parameters.Add("mobile", userName); parameters.Add("password", password); } if (!string.IsNullOrEmpty(authorizationCode)) { parameters.Add("code", authorizationCode); parameters.Add("redirect_uri", redirectUri); //和获取 authorization_code 的 redirect_uri 必须一致,不然会报错 } if (!string.IsNullOrEmpty(refreshToken)) { parameters.Add("refresh_token", refreshToken); } ClientHelper.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(_clientId + ":" + _clientSecret))); var response = await ClientHelper.PostAsync(TokenPath, new FormUrlEncodedContent(parameters)); var responseValue = await response.Content.ReadAsStringAsync(); if (response.StatusCode == HttpStatusCode.OK) return JsonHelper.Json<TokenResult>(responseValue, NamingType.UrlCase); Console.WriteLine(response.StatusCode); Console.WriteLine(responseValue); return null; }
private async Task <TokenResult> AccessTokenAsync(GrantType grantType, string refreshToken = null, string userName = null, string password = null, string authorizationCode = null, string redirectUri = null) { var parameters = new Dictionary <string, string> { { "grant_type", grantType.GetText() } }; if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password)) { parameters.Add("mobile", userName); parameters.Add("password", password); } if (!string.IsNullOrEmpty(authorizationCode)) { parameters.Add("code", authorizationCode); parameters.Add("redirect_uri", redirectUri); //和获取 authorization_code 的 redirect_uri 必须一致,不然会报错 } if (!string.IsNullOrEmpty(refreshToken)) { parameters.Add("refresh_token", refreshToken); } ClientHelper.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(_clientId + ":" + _clientSecret))); var response = await ClientHelper.PostAsync(TokenPath, new FormUrlEncodedContent(parameters)); var responseValue = await response.Content.ReadAsStringAsync(); if (response.StatusCode == HttpStatusCode.OK) { return(JsonHelper.Json <TokenResult>(responseValue, NamingType.UrlCase)); } Console.WriteLine(response.StatusCode); Console.WriteLine(responseValue); return(null); }