RequesterExtensions
Useful extensions for IRequester objects.
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();
defaultRequest.Address = url;
defaultRequest.Content = content;
defaultRequest.Method = method;
DefaultRequest defaultRequest2 = defaultRequest;
if (mimeType != null)
defaultRequest2.Headers[HeaderNames.ContentType] = mimeType;
return requester.RequestAsync(defaultRequest2, cancel);
}
}
}