AngleSharp by Florian Rappl

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

 DocumentLoader

Represents the default document loader. This class can be inherited.
using AngleSharp.Events; using AngleSharp.Extensions; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AngleSharp.Network.Default { public class DocumentLoader : IDocumentLoader { private readonly IEnumerable<IRequester> _requesters; private readonly IBrowsingContext _context; public DocumentLoader(IEnumerable<IRequester> requesters, IBrowsingContext context) { _requesters = requesters; _context = context; } public virtual Task<IResponse> LoadAsync(DocumentRequest request, CancellationToken cancel) { IEventAggregator events = _context.Configuration.Events; Request request2 = new Request(); request2.Address = request.Target; request2.Content = request.Body; request2.Method = request.Method; Request request3 = request2; foreach (KeyValuePair<string, string> header in request.Headers) { request3.Headers[header.Key] = header.Value; } string cookie = _context.Configuration.GetCookie(request.Target.Origin); if (cookie != null) request3.Headers[HeaderNames.Cookie] = cookie; return _requesters.LoadAsync(request3, events, cancel); } } }