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" />
<PackageVersion Include="RestHttpClient" Version="0.2.0-alpha" />
<PackageReference Include="RestHttpClient" />
paket add RestHttpClient --version 0.2.0-alpha
#r "nuget: RestHttpClient, 0.2.0-alpha"
#:package RestHttpClient@0.2.0-alpha
#addin nuget:?package=RestHttpClient&version=0.2.0-alpha&prerelease
#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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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 | 7,246 | 4/8/2019 |
| 0.6.0-alpha | 501 | 3/28/2019 |
| 0.5.0-alpha | 558 | 3/19/2019 |
| 0.4.0-alpha | 495 | 3/19/2019 |
| 0.3.1-alpha | 498 | 3/19/2019 |
| 0.3.0-alpha | 501 | 3/19/2019 |
| 0.2.0-alpha | 894 | 3/18/2019 |
| 0.1.0-alpha | 883 | 3/18/2019 |