Map-like representation of url search parameters, based on
URLSearchParams in the url living standard,
with several extensions for merging URLSearchParams objects:
This class accepts an optional second parameter of $QueryEncoder,
which is used to serialize parameters before making a request. By default,
QueryEncoder encodes keys and values of parameters using encodeURIComponent,
and then un-encodes certain characters that are allowed to be part of the query
according to IETF RFC 3986: https://tools.ietf.org/html/rfc3986.
These are the characters that are not encoded: ! $ \' ( ) * + , ; A 9 - . _ ~ ? /
If the set of allowed query characters is not acceptable for a particular backend,
QueryEncoder can be subclassed and provided as the 2nd argument to URLSearchParams.
import {URLSearchParams, QueryEncoder} from '@angular/http';
class MyQueryEncoder extends QueryEncoder {
encodeKey(k: string): string {
return myEncodingFunction(k);
}
encodeValue(v: string): string {
return myEncodingFunction(v);
}
}
let params = new URLSearchParams('', new MyQueryEncoder());