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;
    }
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 ; }
Get parameter values from header value

@param header
@return parameter value or null if none