示例#1
0
文件: Download.cs 项目: st1pps/Wyam
        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;
        }
示例#2
0
文件: Download.cs 项目: st1pps/Wyam
        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;
            }
        }
示例#3
0
 public DownloadInstruction(Uri uri, RequestHeader requestHeader)
     : this(uri)
 {
     RequestHeader = requestHeader;
 }