Sunday, May 30, 2021

ssl certificate issue in restsharp api automation testing

 


ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

  client.RemoteCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

Saturday, May 29, 2021

Simple Authenticator and HttpBasicAuthenticator in RestSharp

 


Simple Authenticator :
var client = new RestClient("http://example.com");
client.Authenticator = new SimpleAuthenticator("username", "foo", "password", "bar");

var request = new RestRequest("resource", Method.GET);
client.Execute(request);
========= HttpBasicAuthenticator =============
var client = new RestClient();
client.BaseUrl = "http://twitter.com";
client.Authenticator = new HttpBasicAuthenticator("username", "password");

var request = new RestRequest();
request.Resource = "statuses/friends_timeline.xml";

RestResponse response = client.Execute(request);

oAuth2 token using in RestSharp

 

public void api()

{

    string token = "";

 

    try {

        callApi(token);

    }

    catch(Exception)

    {

        var client = new RestClient("www.example.com/api/token");

        var request = new RestRequest(Method.POST);

        request.AddHeader("content-type", "application/x-www-form-urlencoded");

        request.AddHeader("cache-control", "no-cache");

        request.AddParameter("application/x-www-form-urlencoded", "grant_type=password&username=us&password=pas", ParameterType.RequestBody);

        IRestResponse response = client.Execute(request);

 

        dynamic resp = JObject.Parse(response.Content);

        token = resp.access_token;

 

        callApi(token);

    }

}     

 

public void callApi(string token)

{

    var client = new RestClient("www.example.com/api/data");

    var request = new RestRequest(Method.GET);

    request.AddHeader("cache-control", "no-cache");

    request.AddHeader("authorization", "Bearer " + token);

    request.AddHeader("accept", "application/json; charset=utf-8");

    IRestResponse response = client.Execute(request);

}

=============

How to get a token :


var apiKey = "api_key";
var apiPassword = "api_password";
 
//create RestSharp client and POST request object
var client = new RestClient(url);
var request = new RestRequest(Method.POST);
 
//add GetToken() API method parameters
request.Parameters.Clear();
request.AddParameter("grant_type", "password");
request.AddParameter("username", apiKey);
request.AddParameter("password", apiPassword);
 
//make the API request and get the response
IRestResponse response = client.Execute(request);
 
//return an AccessToken

return JsonConvert.DeserializeObject(response.Content);


ref : https://mfcallahan.blog/2017/07/30/making-a-post-request-to-an-oauth2-secured-api-using-restsharp/