code: public static List<Challenge> parseChallenges(Headers responseHeaders, String headerName) {
      List<Challenge> result = new ArrayList<>();
      for (int h = 0; h < responseHeaders.size(); h++) {
        if (headerName.equalsIgnoreCase(responseHeaders.name(h))) {
          Buffer header = new Buffer().writeUtf8(responseHeaders.value(h));
          try {
            parseChallengeHeader(result, header);
          } catch (EOFException e) {
            Platform.get().log(Platform.WARN, "Unable to parse challenge", e);
          }
        }
      }
      return result;
    }
docs: Parse RFC 7235 challenges. This is awkward because we need to look ahead to know how to
  interpret a token.
  
  <p>For example, the first line has a parameter name/value pair and the second line has a single
  token68:
  
  <pre>   {@code
  
  WWW-Authenticate: Digest foo=bar
  WWW-Authenticate: Digest foo=
  }</pre>
  
  <p>Similarly, the first line has one challenge and the second line has two challenges:
  
  <pre>   {@code
  
  WWW-Authenticate: Digest ,foo=bar
  WWW-Authenticate: Digest ,foo
  }</pre>