List <string> GetAllHeaderValues(HeaderBucket bucket, HeaderInfo headerInfo) { List <string> string_values = null; if (headerInfo != null && headerInfo.AllowsMany) { string_values = headerInfo.ToStringCollection(bucket.Parsed); } else { if (bucket.Parsed != null) { string s = bucket.ParsedToString(); if (!string.IsNullOrEmpty(s)) { string_values = new List <string> (); string_values.Add(s); } } } if (bucket.HasStringValues) { if (string_values == null) { string_values = new List <string> (); } string_values.AddRange(bucket.Values); } return(string_values); }
internal HttpHeaderValueCollection <T> GetValues <T> (string name) where T : class { HeaderBucket value; if (!headers.TryGetValue(name, out value)) { value = new HeaderBucket(new HttpHeaderValueCollection <T> (this, known_headers [name])); headers.Add(name, value); } if (value.HasStringValues) { var hinfo = known_headers[name]; if (value.Parsed == null) { value.Parsed = hinfo.CreateCollection(this); } object pvalue; for (int i = 0; i < value.Values.Count; ++i) { if (!hinfo.TryParse(value.Values[i], out pvalue)) { continue; } hinfo.AddToCollection(value.Parsed, pvalue); value.Values.RemoveAt(i); --i; } } return((HttpHeaderValueCollection <T>)value.Parsed); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { AuthenticationHeaderValue header = request.Headers.Authorization; if (header != null) { HeaderBucket bucket = (HeaderBucket)request.GetDependencyScope().GetService(typeof(HeaderBucket)); bucket.Add(new HeaderBucket.Header(HeaderConstants.AUTHORIZATION_TOKEN, header.Parameter)); } return(base.SendAsync(request, cancellationToken)); }
internal HttpHeaderValueCollection <T> GetValues <T> (string name) where T : class { HeaderBucket value; if (!headers.TryGetValue(name, out value)) { var hinfo = known_headers[name]; value = new HeaderBucket(new HttpHeaderValueCollection <T> (this, hinfo), hinfo.CustomToString); headers.Add(name, value); } var col = (HttpHeaderValueCollection <T>)value.Parsed; if (value.HasStringValues) { var hinfo = known_headers[name]; if (col == null) { value.Parsed = col = new HttpHeaderValueCollection <T> (this, hinfo); } object pvalue; for (int i = 0; i < value.Values.Count; ++i) { var svalue = value.Values[i]; if (!hinfo.TryParse(svalue, out pvalue)) { col.AddInvalidValue(svalue); } else { hinfo.AddToCollection(col, pvalue); } } value.Values.Clear(); } return(col); }
void SetValue <T> (string name, T value, Func <object, string> toStringConverter = null) { headers[name] = new HeaderBucket(value, toStringConverter); }
bool AddInternal(string name, IEnumerable <string> values, HeaderInfo headerInfo, bool ignoreInvalid) { HeaderBucket bucket; headers.TryGetValue(name, out bucket); bool ok = true; foreach (var value in values) { bool first_entry = bucket == null; if (headerInfo != null) { object parsed_value; if (!headerInfo.TryParse(value, out parsed_value)) { if (ignoreInvalid) { ok = false; continue; } throw new FormatException(); } if (headerInfo.AllowsMany) { if (bucket == null) { bucket = new HeaderBucket(headerInfo.CreateCollection(this)); } headerInfo.AddToCollection(bucket.Parsed, parsed_value); } else { if (bucket != null) { throw new FormatException(); } bucket = new HeaderBucket(parsed_value); } } else { if (bucket == null) { bucket = new HeaderBucket(null); } bucket.Values.Add(value ?? string.Empty); } if (first_entry) { headers.Add(name, bucket); } } return(ok); }
public HeaderAwareBus(IBus bus, HeaderBucket bucket) { _bus = bus; _bucket = bucket; }
void SetValue <T> (string name, T value) { headers[name] = new HeaderBucket(value); }