AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.0" />

 RequesterExtensions

static class RequesterExtensions
Useful extensions for IRequester objects.
using AngleSharp.Dom; using AngleSharp.Network; using System.Diagnostics; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AngleSharp.Extensions { [DebuggerStepThrough] internal static class RequesterExtensions { public static Task<IResponse> RequestAsync(this IRequester requester, IRequest request) { return requester.RequestAsync(request, CancellationToken.None); } public static Task<IResponse> LoadAsync(this IRequester requester, Url url) { return requester.LoadAsync(url, CancellationToken.None); } public static Task<IResponse> LoadAsync(this IRequester requester, Url url, CancellationToken cancel) { return requester.RequestAsync(new DefaultRequest { Address = url, Method = HttpMethod.Get }, cancel); } public static Task<IResponse> LoadWithCorsAsync(this IRequester requester, Url url, CorsSetting cors, string origin, OriginBehavior defaultBehavior) { return requester.LoadWithCorsAsync(url, cors, origin, defaultBehavior, CancellationToken.None); } public static Task<IResponse> LoadWithCorsAsync(this IRequester requester, Url url, CorsSetting cors, string origin, OriginBehavior defaultBehavior, CancellationToken cancel) { return requester.RequestAsync(new DefaultRequest { Address = url, Method = HttpMethod.Get }, cancel); } public static Task<IResponse> SendAsync(this IRequester requester, Url url, Stream content = null, string mimeType = null, HttpMethod method = HttpMethod.Post) { return requester.SendAsync(url, content, mimeType, method, CancellationToken.None); } public static Task<IResponse> SendAsync(this IRequester requester, Url url, Stream content, string mimeType, HttpMethod method, CancellationToken cancel) { DefaultRequest defaultRequest = new DefaultRequest { Address = url, Content = content, Method = method }; if (mimeType != null) defaultRequest.Headers[HeaderNames.ContentType] = mimeType; return requester.RequestAsync(defaultRequest, cancel); } } }