How to sent authorized header attribute value using c# .net httpclient for third party api call of oauth 2.0

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 = 
                    (requestMessagecertificatechainpolicyErrors) => 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

Featured Post

How to sent authorized header attribute value using c# .net httpclient for third party api call of oauth 2.0

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...

Popular Posts