我正在尝试使用 HttpParameterCodec 在 Angular 中编码(“application/x-www-form-urlencoded”)一个对象。该对象有一个字段作为对象,该对象又具有字符串数组。对象结构如下所述。
export class SearchRequest {id: string = undefined;partnerIds: PartnerIds = undefined;}
export class PartnerIds { partnerId: string[] = undefined;}
现在,当我尝试使用下面提到的实用程序代码(适用于普通对象)对该对象进行编码时,由于其中包含字符串列表,它的格式不正确。
generateQueryParams(searchRequest) {
let httpParams: HttpParams = new HttpParams({encoder: new CustomEncoderComponent()});
Object.keys(searchRequest).forEach(key => {
httpParams = httpParams.append(key, searchRequest[key]);
});
return httpParams;
}
我尝试使用以下查询参数格式,但它不起作用。
1. id=123&partnerIds=XYZ&partnerIds=ABC
2. id=123&partnerId[]=XYZ&partnerId[]=ABC
3. id=123&partnerId=XYZ&partnerId=ABC
请建议如何在 HttpClient 的查询字符串中传递此(SearchRequest)对象?