Skip to content

mnabaci/Utilities.RequestClient

Repository files navigation

RequestClient


alt tag

Easiest way to handle rest requests

Build status NuGet version

NuGet Packages

PM> Install-Package Utilities.RequestClient

Features:

  • Currently supports XML, JSON and BSON request contents and does not support primitive types as return object excluding string
  • Provides easy way to handle GET, POST, PUT and DELETE requests as sync or async.

Usage:

Creating instance for RequestClient:

using (RequestClient requestClient = RequestClient.SetBaseUri(string baseUri))
{
}

after creating instance for RequestClient then you can use POST, GET, PUT or DELETE methods for requests:

requestClient.Get<ResultDto>($"get-action?queryString=value");
requestClient.Post<ResultDto>("post-action", RequestDto requestDto);
requestClient.Put<ResultDto>("put-action", RequestDto requestDto);
requestClient.Delete<ResultDto>($"delete-action?queryString=value");

or you can use Async methods for requests:

await requestClient.GetAsync<ResultDto>($"get-action?queryString=value");
await requestClient.PostAsync<ResultDto>("post-action", RequestDto requestDto);
await requestClient.PutAsync<ResultDto>("put-action", RequestDto requestDto);
await requestClient.DeleteAsync<ResultDto>($"delete-action?queryString=value");

You can configure requests:

requestClient
    .AddHeader(string key,string value)
    .SetTimeout(TimeSpan.FromMilliseconds(10000))
    .Get<ResultDto>($"get-action?queryString=value");

There are several options you can set:

  • .AddHeader(string key, string value)
  • .SetTimeout(TimeSpan timespan) or .SetTimeout(double milliseconds)
  • .SetEncoding(Encoding encoding)
  • .SetMediaType(MediaTypes mediaType)
  • .SetAuthorizationHeader(string scheme, string parameter)
  • .SetBasicAuthorizationHeader(string basicAuthHeader)
  • .SetBearerAuthorizationHeader(string bearerAuthHeader)