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 {
Address = request.Target,
Content = request.Body,
Method = request.Method
};
if (request.MimeType != null)
request2.Headers[HeaderNames.ContentType] = request.MimeType;
if (request.Referer != null)
request2.Headers[HeaderNames.Referer] = request.Referer;
return _requesters.LoadAsync(request2, events, cancel);
}
}
}