/ByteDev.Http

.NET Standard library with some HTTP related functionality.

Primary LanguageC#MIT LicenseMIT

Build status NuGet Package License: MIT

ByteDev.Http

.NET Standard library with some HTTP related functionality.

Looking for the form URL encoded functionality? It has now moved to a new project ByteDev.FormUrlEncoded which is also on nuget.

Installation

ByteDev.Http has been written as a .NET Standard 2.0 library, so you can consume it from a .NET Core or .NET Framework 4.6.1 (or greater) application.

ByteDev.Http is hosted as a package on nuget.org. To install from the Package Manager Console in Visual Studio run:

Install-Package ByteDev.Http

Further details can be found on the nuget page.

Release Notes

Releases follow semantic versioning.

Full details of the release notes can be viewed on GitHub.

Usage

Library currently consists of the following main classes:

  • HttpStatusCodeInfo
  • MediaType

As well as a few HTTP content specialized classes (located in namespace: ByteDev.Http.Content):

  • EmptyContent
  • FormUrlEncodedContent
  • JsonContent
  • XmlContent

HttpStatusCodeInfo

Represents a standard HTTP status code with extended information.

Located in namespace: ByteDev.Http.

HttpStatusCodeInfo statusCode = HttpStatusCodeInfo.CreateFromCode(404);

// statusCode.Code == 404
// statusCode.Name == "Not Found"
// statusCode.Category.Code == 4
// statusCode.Category.Name == "Client Error"
// statusCode.Category.Description == "Request contains bad syntax or cannot be fulfilled."

MediaType

Represents an internet media type. Also known as a Multipurpose Internet Mail Extensions (MIME) type.

Located in namespace: ByteDev.Http.

var mediaType = new MediaType("application/vnd.api+json; charset=UTF-8");

// mediaType == "application/vnd.api+json; charset=UTF-8"
// mediaType.Type == "application"
// mediaType.Tree == "vnd"
// mediaType.SubType == "api"
// mediaType.Suffix == "json"
// mediaType.Parameters["charset"] == "UTF-8"

Extension Methods

The assembly also contains a number of public extension methods.

To use them reference namespace: ByteDev.Http.

HttpContent:

  • IsFormUrlEncoded
  • IsJson
  • IsXml
  • IsMediaType
  • SafeReadAsStringAsync

HttpContentHeaders:

  • AddOrUpdate

HttpRequestHeaders:

  • AddAcceptJson
  • AddAcceptXml
  • AddOrUpdate
  • AddUserAgent

HttpStatusCode:

  • ToReadableString