Exemplo n.º 1
0
        private void ExtractHeaderLinks(HttpResponseHeaders responseHeaders, SemanticsRegistry linkFactory)
        {
            _HeaderLinks = new List<Link>();

            foreach (var header in responseHeaders.Where(h => h.Key.ToLowerInvariant() == "link"))
            {
                var links = header.Value.First();

                foreach (Match match in LinkHeaderParser.Matches(links))
                {
                    string relation = null;
                    if (match.Groups["rel"].Success)
                    {
                        relation = match.Groups["rel"].Value;
                    }

                    var link = linkFactory.CreateLink(relation);
                    link.Target = new Uri(match.Groups["href"].Value, UriKind.RelativeOrAbsolute);

                    _HeaderLinks.Add(link);
                }
            }
        }
Exemplo n.º 2
0
 private static Dictionary<string, string> GetRpcHeaders(HttpResponseHeaders headers)
 {
     return headers
         .Where(it => it.Key.StartsWith(HeadPrefix))
         .ToDictionary(item => item.Key.Substring(HeadPrefix.Length, item.Key.Length - HeadPrefix.Length), item => item.Value.FirstOrDefault());
 }
		private Uri NextPageUriFromHeaders(HttpResponseHeaders headers) {
			var linkHeader = headers
				.Where(t => "Link".Equals(t.Key, StringComparison.OrdinalIgnoreCase))
				.SelectMany(t => t.Value)
				.FirstOrDefault();
			if(linkHeader==null) return null;
			var match = NextLinkPattern.Match(linkHeader);
			if(!match.Success) return null;
			return new Uri(match.Groups[1].Value);
		}