ParkSquare.Extensions.Http
8.1.1
See the version list below for details.
dotnet add package ParkSquare.Extensions.Http --version 8.1.1
NuGet\Install-Package ParkSquare.Extensions.Http -Version 8.1.1
<PackageReference Include="ParkSquare.Extensions.Http" Version="8.1.1" />
paket add ParkSquare.Extensions.Http --version 8.1.1
#r "nuget: ParkSquare.Extensions.Http, 8.1.1"
// Install ParkSquare.Extensions.Http as a Cake Addin #addin nuget:?package=ParkSquare.Extensions.Http&version=8.1.1 // Install ParkSquare.Extensions.Http as a Cake Tool #tool nuget:?package=ParkSquare.Extensions.Http&version=8.1.1
HttpClient Extensions
Background
This package contains HttpClient extension methods supporting typed REST verbs from JSON, XML and URL encoded form endpoints. Correctly handles bearer tokens and cookies.
Has built-in conversion of any request object to JSON, XML, querystring or URL encoded form, including binary MultipartForm requests.
Includes Uri concatenation helpers and Cookie accessor.
For responses that return a non-2xx (i.e. failure) status code, most methods will throw an UnsuccessfulResponseException of some sort, which has a Raw property containing the response message. This is useful if the error DTO shape differs from the successful DTO shape, and removes the necessity to pollute your DTOs with error properties.
Usage Examples
Most helper methods can take a response DTO type that the response will be deserialized into, e.g. if your response object is TestResponseDto:
var response = await httpClient.GetAsync<TestResponseDto>(new Uri("https://httpbin.org/get"));
If the call requires a request body (e.g. POST), or query string parameters (e.g. GET) then you can pass your request object as a strongly typed object. It will be serialized into a JSON body, or converted into query string parameters automatically depending on the HTTP verb you are using.
var request = new TestRequestDto
{
SomeValue = 1234
};
var response = await httpClient.PostAsync<TestResponseDto>(new Uri("https://api.example.com"), request);
In many cases, for example where you do not expect (or care about) the response, the response type can be omitted:
var request = new TestRequestDto
{
SomeValue = 1234
};
await httpClient.PostAsync(new Uri("https://api.example.com"), request);
Populating Values From Response Header
If you need to populate your response DTO with a value from the response header, decorate the property with the name of the header. The value is case sensitive. Note that where a header contains multiple values, only the first one will currently be returned.
public class TestResponseDto
{
[FromHeader("x-some-header-name")]
public string SomeProperty { get; set; }
}
When using the [FromHeader] attribute, all other properties without that decoration will still be deserialized from the API response as normal.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
.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 (>= 13.0.3)
-
net6.0
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
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 |
---|---|---|
8.1.2 | 104 | 11/3/2024 |
8.1.1 | 266 | 10/11/2024 |
8.1.0 | 388 | 9/5/2024 |
8.0.1 | 472 | 7/26/2024 |
8.0.0 | 517 | 6/22/2024 |
4.0.4 | 916 | 4/12/2024 |
4.0.3 | 2,337 | 11/30/2023 |
3.2.9 | 3,027 | 11/2/2023 |
3.2.8 | 838 | 8/22/2023 |
3.2.7 | 1,058 | 5/17/2023 |
3.2.6 | 983 | 2/9/2023 |
3.2.5 | 726 | 2/9/2023 |
3.2.4 | 2,512 | 8/22/2022 |
3.2.2 | 911 | 8/19/2022 |
3.2.1 | 1,375 | 6/27/2022 |