Tavis.LinkHeaderParser.Parse C# (CSharp) Method

Parse() public method

public Parse ( Uri baseUrl, string linkHeader ) : IList
baseUrl System.Uri
linkHeader string
return IList
        public IList<ILink> Parse(Uri baseUrl, string linkHeader)
    {
      BaseUrl = baseUrl;
      InputString = linkHeader;
      InputPos = 0;

      IList<ILink> links = new List<ILink>();

      while (true)
      {
        try
        {
          GetNextToken();

          if (NextToken.Type == TokenType.Url)
            links.Add(ParseLink());
          else if (NextToken.Type == TokenType.EOF)
            break;
          else
            Error(string.Format("Unexpected token '{0}' (expected URL)", NextToken.Type));

          if (NextToken.Type == TokenType.Comma)
            continue;
          else if (NextToken.Type == TokenType.EOF)
            break;
          else
            Error(string.Format("Unexpected token '{0}' (expected comma)", NextToken.Type));
        }
        catch (FormatException)
        {
          while (NextToken.Type != TokenType.Comma && NextToken.Type != TokenType.EOF)
          {
            try
            {
              GetNextToken();
            }
            catch (FormatException)
            {
            }
          }
        }
      }

      return links;
    }

Usage Example

 public static List<ILink> ParseLinkHeaders(this HttpHeaders headers, Uri baseUri, ILinkFactory linkRegistry)
 {
     var list = new List<ILink>();
     var parser = new LinkHeaderParser(linkRegistry);
     var linkHeaders = headers.GetValues("Link");
     foreach (var linkHeader in linkHeaders)
     {
         list.AddRange(parser.Parse(baseUri, linkHeader));
     }
     return list;
 }
All Usage Examples Of Tavis.LinkHeaderParser::Parse