private async Task <string> RefreshToken() { objTokenAfterLogin particleResponse = new objTokenAfterLogin(); var requestParameters = new[] { new KeyValuePair <string, string> ("refresh_token", dataTempAuth.refresh_token), new KeyValuePair <string, string> ("client_id", client_id), new KeyValuePair <string, string> ("grant_type", "refresh_token")/*, * new KeyValuePair<string, string> ("name", name), * new KeyValuePair<string, string> ("type", "0"), * new KeyValuePair<string, string> ("access_token", dataTempAuth.access_token),*/ }; var requestContent = new FormUrlEncodedContent(requestParameters); try { using (var client = new HttpClient()) { HttpResponseMessage response = await client.PostAsync( serviceBase + "?refresh_token=" + dataTempAuth.refresh_token + "&client_id=" + client_id + "&grant_type=" + "refresh_token", requestContent ); using (var reader = new System.IO.StreamReader(await response.Content.ReadAsStreamAsync())) { var responseText = await reader.ReadToEndAsync(); return(responseText); //particleResponse = JsonConvert.DeserializeObject<objTokenAfterLogin>(responseText); //return particleResponse; } } } catch (Exception e) { throw e; } }
public async Task <string> authanythingpost() { try { //string postData = Request.Content.ReadAsStringAsync().Result; //authModel authData = JsonConvert.DeserializeObject<authModel>(postData); #region => dummy data var authData = new authModel(); authData.userName = "******"; authData.password = "******"; dataTempAuth.access_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; dataTempAuth.refresh_token = "d9d0ca308de64e"; dataTempAuth.token_type = "bearer "; #endregion anythingData andt = new anythingData { aaa1 = "ax01", bbb2 = "ax02", ccc3 = "ax03" }; string data = JsonConvert.SerializeObject(authData); byte[] bytes = Encoding.UTF8.GetBytes(data); WebClient webClient = new WebClient(); webClient.Headers.Clear(); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); webClient.Headers.Add("Authorization", dataTempAuth.token_type + dataTempAuth.access_token); string apiname = "test/anythingpost"; resBase = "http://localhost:3000/"; string rev = Encoding.UTF8.GetString(webClient.UploadData(resBase + apiname, bytes)); anythingData dataObj = JsonConvert.DeserializeObject <anythingData>(rev); objTokenAfterLogin retToken = new objTokenAfterLogin(); retToken.refresh_token = rev; return(rev); //return retToken; } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { var response = ex.Response as HttpWebResponse; if (response != null) { if ((int)response.StatusCode == 401) { if (dataTempAuth != null) { var usingBuilkAuthToken = false; if (response.ResponseUri.ToString().Split('/')[2] == resBase.Split('/')[2].ToString()) { usingBuilkAuthToken = true; } if (usingBuilkAuthToken) { var taskUpload = RefreshToken(); var waitForRefreshTokens = await taskUpload; return(waitForRefreshTokens); } } } } else { // no http status code available } } else { // no http status code available } throw ex; } }