API略有不同,通过这种方式,您可以在查询字符串中发送带有params的动态请求
let paramsMap = new Map();
paramsMap.set('username','admin');
paramsMap.set('password','admin');
let params = new HttpParams();
paramsMap.forEach((value: any, key: any) => {
params = params.set(key, value);
});
return this.http.request('post', this.url + LOGIN_URL, { 'params': params});
如果您检查HttpClient方法,您可以看到它是如何工作的 .
Answer to first comment:
HttpParams它不是不可变的,它用于将params传递给查询字符串 . 所以你需要的是:
let paramsMap = new Map();
paramsMap.set('email','test@mail.com');
paramsMap.set('password','pass');
return this.http.post(this.url + LOGIN_URL, mapToObject(paramsMap));
/**
* recursive function that receive a Map and returns a JSON object
* @param map
* @returns {any}
*/
function mapToObject(map) {
const out = Object.create(null)
map.forEach((value, key) => {
if (value instanceof Map) {
out[key] = mapToObject(value)
}
else {
out[key] = value
}
});
return out
}