Class HttpParser


  • public final class HttpParser
    extends java.lang.Object
    A basic parser for HTTP response headers. Handles status lines and authentication headers (WWW-Authenticate, Proxy-Authenticate).
    See Also:
    RFC 7230, RFC 7235
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  HttpParser.ParseException
      An exception indicating some problem parsing HTPP headers.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private HttpParser()  
    • Constructor Detail

      • HttpParser

        private HttpParser()
    • Method Detail

      • getAuthenticationHeaders

        public static java.util.List<AuthenticationChallenge> getAuthenticationHeaders​(java.util.List<java.lang.String> reply,
                                                                                       java.lang.String authenticationHeader)
        Extract the authentication headers from the header lines. It is assumed that the first element in reply is the raw status line as received from the server. It is skipped. Line processing stops on the first empty line thereafter.
        Parameters:
        reply - The complete (header) lines of the HTTP response
        authenticationHeader - to look for (including the terminating ':'!)
        Returns:
        a list of AuthenticationChallenges found.
      • parseChallenges

        private static void parseChallenges​(java.util.List<AuthenticationChallenge> challenges,
                                            java.lang.String header)
      • parseChallenge

        private static int parseChallenge​(AuthenticationChallenge challenge,
                                          java.lang.String header,
                                          int from)
      • skipWhiteSpace

        private static int skipWhiteSpace​(java.lang.String header,
                                          int i)
      • scanToken

        private static int scanToken​(java.lang.String header,
                                     int from)
      • scanQuotedString

        private static java.lang.String scanQuotedString​(java.lang.String header,
                                                         int from,
                                                         int[] to)