public Download UriWithRequestHeader(string uri, RequestHeader requestHeader) { if (requestHeader == null) throw new ArgumentNullException("requestHeader cannot be null"); _urls.Add(new DownloadInstruction(new Uri(uri), requestHeader)); return this; }
private void ModifyRequestHeader(HttpRequestHeaders request, RequestHeader requestHeader) { foreach (var a in requestHeader.Accept) { request.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(a)); } foreach (var a in requestHeader.AcceptCharset) { request.AcceptCharset.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue(a)); } foreach (var a in requestHeader.AcceptEncoding) { request.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue(a)); } foreach (var a in requestHeader.AcceptLanguage) { request.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue(a)); } if (requestHeader.BasicAuthorization != null) { var auth = requestHeader.BasicAuthorization; request.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes($"{auth.Item1}:{auth.Item2}"))); } foreach (var c in requestHeader.Connection) { request.Connection.Add(c); } if (requestHeader.Date.HasValue) { request.Date = requestHeader.Date; } foreach (var e in requestHeader.Expect) { request.Expect.Add(new NameValueWithParametersHeaderValue(e)); } if (requestHeader.ExpectContinue.HasValue) { request.ExpectContinue = requestHeader.ExpectContinue; } if (!string.IsNullOrWhiteSpace(requestHeader.From)) { request.From = requestHeader.From; } if (!string.IsNullOrWhiteSpace(requestHeader.Host)) { request.Host = requestHeader.Host; } foreach (var i in requestHeader.IfMatch) { request.IfMatch.Add(new EntityTagHeaderValue(i)); } if (requestHeader.IfModifiedSince.HasValue) { request.IfModifiedSince = requestHeader.IfModifiedSince; } foreach (var i in requestHeader.IfNoneMatch) { request.IfNoneMatch.Add(new EntityTagHeaderValue(i)); } if (requestHeader.IfUnmodifiedSince.HasValue) { request.IfUnmodifiedSince = requestHeader.IfUnmodifiedSince; } if (requestHeader.MaxForwards.HasValue) { request.MaxForwards = requestHeader.MaxForwards; } if (requestHeader.Referrer != null) { request.Referrer = requestHeader.Referrer; } foreach (var t in requestHeader.TransferEncoding) { request.TransferEncoding.Add(new TransferCodingHeaderValue(t)); } if (requestHeader.TransferEncodingChunked.HasValue) { request.TransferEncodingChunked = requestHeader.TransferEncodingChunked; } }
public DownloadInstruction(Uri uri, RequestHeader requestHeader) : this(uri) { RequestHeader = requestHeader; }