How to sent authorized header attribute value using C# .NET HTTP client for third party API call of OAuth 2.0
For call token From Authorized Header we use following code
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Web;
using RestSharp;
using System.Security.Authentication;
using CustomProject.DataEntity.ExtendedEntities;
using System.Web.Script.Serialization;
namespace CustomProject.Api
{
public class CustomProjectToken
{
string Client_id = System.Configuration.ConfigurationManager.AppSettings["Client_id"];
string Client_secret = System.Configuration.ConfigurationManager.AppSettings["Client_secret"];
string Grant_type = System.Configuration.ConfigurationManager.AppSettings["Grant_type"];
string BaseUrl = System.Configuration.ConfigurationManager.AppSettings["BaseUrl"];
string TokenUrl = System.Configuration.ConfigurationManager.AppSettings["TokenUrl"];
public static string Token = "";
public async System.Threading.Tasks.Task<TokenResponse> getTokenAsync()
{
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback =
(requestMessage, certificate, chain, policyErrors) => true;
using (var httpClient = new HttpClient(handler))
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"),
BaseUrl + TokenUrl))
{
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes
(Client_id + ":" + Client_secret));
request.Headers.TryAddWithoutValidation("Authorization", $"Basic
{base64authorization}");
request.Content = new StringContent("grant_type=" + Grant_type);
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse
("application/x-www-form-urlencoded");
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var response = await httpClient.SendAsync(request);
var payload = JsonConvert.DeserializeObject<TokenResponse>
(await response.Content.ReadAsStringAsync());
Token = payload.access_token;
return payload;
}
}
}
}
}
models:-
public class TokenResponse
{
public string access_token { set; get; }
public string token_type { set; get; }
public string expires_in { set; get; }
}
No comments:
Post a Comment
Thank You For Your Great Contribution