/// <summary> /// Send a GET request to the specified <see cref="Uri"/>. /// </summary> /// <param name="requestUri"> /// The <see cref="Uri"/> the request is sent to. /// </param> /// <param name="referrerUri"> /// The <see cref="Uri"/> of the referring site for a request. Can be null. /// </param> /// <param name="referrerPolicy"> /// The policy for how the Referrer HTTP header value will be sent during request. /// </param> /// <param name="headers"> /// A <see cref="NameValueCollection"/> containing header name/value pairs associated with a request. Can be null. /// </param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> /// <exception cref="ArgumentNullException">The <see cref="requestUri"/> parameter is null.</exception> public async Task <CefNetWebRequest> GetAsync(Uri requestUri, Uri referrerUri, CefReferrerPolicy referrerPolicy, NameValueCollection headers, CancellationToken cancellationToken) { if (requestUri is null) { throw new ArgumentNullException(nameof(requestUri)); } var r = new CefRequest(); r.Flags = (int)this.RequestFlags; r.Url = requestUri.AbsoluteUri; if (referrerUri != null) { r.SetReferrer(referrerUri.AbsoluteUri, referrerPolicy); } if (headers != null && headers.Count > 0) { using (var map = new CefStringMultimap()) { map.Add(headers); r.SetHeaderMap(map); } } var request = new CefNetWebRequest(this); await request.SendAsync(r, _context, cancellationToken); return(request); }