code: private static Map<String, String> getHeaderParams( final String header ) {
          if( header == null || header.length() == 0 )
              return Collections.emptyMap();
  
          final int headerLength = header.length();
          int start = header.indexOf(';') + 1;
          if( start == 0 || start == headerLength )
              return Collections.emptyMap();
  
          int end = header.indexOf(';', start);
          if( end == -1 )
              end = headerLength;
  
          Map<String, String> params = new LinkedHashMap<String, String>();
          while( start < end ) {
              int nameEnd = header.indexOf('=', start);
              if( nameEnd != -1 && nameEnd < end ) {
                  String name = header.substring(start, nameEnd).trim();
                  if( name.length() > 0 ) {
                      String value = header.substring(nameEnd + 1, end).trim();
                      int length = value.length();
                      if( length != 0 )
                          if( length > 2 && '"' == value.charAt(0) && '"' == value.charAt(length - 1) )
                              params.put(name, value.substring(1, length - 1));
                          else
                              params.put(name, value);
                  }
              }
  
              start = end + 1;
              end = header.indexOf(';', start);
              if( end == -1 )
                  end = headerLength;
          }
  
          return params;
      }
docs: Get parameter values from header value
  
  @param header
  @return parameter value or null if none