RestHttpClient 0.2.0-alpha
See the version list below for details.
dotnet add package RestHttpClient --version 0.2.0-alpha
NuGet\Install-Package RestHttpClient -Version 0.2.0-alpha
<PackageReference Include="RestHttpClient" Version="0.2.0-alpha" />
paket add RestHttpClient --version 0.2.0-alpha
#r "nuget: RestHttpClient, 0.2.0-alpha"
// Install RestHttpClient as a Cake Addin #addin nuget:?package=RestHttpClient&version=0.2.0-alpha&prerelease // Install RestHttpClient as a Cake Tool #tool nuget:?package=RestHttpClient&version=0.2.0-alpha&prerelease
Simple and flexible REST client built on top of Microsoft's System.Net.HttpClient.
Usage
var client = new RestHttpClient
{
BaseAddress = new Uri("https://jsonplaceholder.typicode.com")
};
var list = await client.RestGetAsync<List<Todo>>("todos");
var todo = await client.RestGetAsync<Todo>("todos/1");
var model = new Todo
{
Title = "Lorem Ipsum",
UserId = 1
};
var createdTodo = await client.RestPostAsync<Todo>("todos", model);
Customize serialization
Implement one of ISerializer
, IDeserializer
, IConverter (combination of both)
and set to according property on RestHttpClient
:
var client = new RestHttpClient
{
BaseAddress = new Uri("https://jsonplaceholder.typicode.com"),
Converter = new JsonRestConverter()
};
Authorization
Implement IAuthenticator
and set it to RestHttpClient
.
var client = new RestHttpClient
{
BaseAddress = new Uri("https://jsonplaceholder.typicode.com"),
Authenticator = new BasicAuthenticator()
};
You can also override OnAuthorizationError or add an event handler to AuthorizationFailed
event.
Requests failed with Unauthorized(401) status are retried once. Before the retry happens,
OnAuthorizationError
, AuthorizationFailed
and Authenticator.OnAuthorizationError
methods are invoked, in that order, and hence you can use these methods to update RestHttpClient or HttpRequestMessage to ensure that the next request will succeed.
Example:
client.AuthorizationFailed += (o, e) =>
{
//Per request
e.Request.Headers.Add("Authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
//Per instance
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
};
Less common cases
For less common cases, write your request using the HttpRequestMessage
class and send it throuth one of the available RestSendAsync
overloads:
var json = "{ title: 'Lorem Ipsum', userId: 1 }";
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
Content = new StringContent(json, Encoding.UTF8, "application/json"),
RequestUri = new Uri("todos", UriKind.Relative)
};
var response = await client.RestSendAsync(request, authRetry: false);
Assert.True(response.IsSuccessStatusCode);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 12.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.7.0-alpha | 6,678 | 4/8/2019 |
0.6.0-alpha | 382 | 3/28/2019 |
0.5.0-alpha | 440 | 3/19/2019 |
0.4.0-alpha | 374 | 3/19/2019 |
0.3.1-alpha | 380 | 3/19/2019 |
0.3.0-alpha | 379 | 3/19/2019 |
0.2.0-alpha | 775 | 3/18/2019 |
0.1.0-alpha | 552 | 3/18/2019 |