我正在尝试使用以下Web服务

@POST
@Path("/delete")
@Produces(MediaType.APPLICATION_JSON)
public boolean deletePost(@QueryParam("idPost") String idPost) {
// logic here
}


但是,尝试从angular分配一个值给QueryParam idPost不起作用。 idPost始终以null值到达。

尝试使用文档中指定的2种形式,但对我不起作用。我究竟做错了什么?

public deletePost(idPost: number): Observable<any> {
    const options = idPost ?
    { params: new HttpParams().set('idPost', idPost.toString()) } : {};
    return this.httpClient.post('url-delete',options);
}

public deletePost(idPost: number): Observable<any> {
    const params = new HttpParams({fromString: 'idPost=' + idPost.toString()});
    return this.httpClient.post('url-delete',params);
}

最佳答案

post中的第二个参数是正文,选项应为json,例如:

const options = { params: new HttpParams().set('name', 'xxx') }

现在像这样调用它:
public deletePost(idPost: number): Observable<any> {
    const options = {params: new HttpParams({fromString: 'idPost=' + idPost.toString()})};
    return this.httpClient.post('url-delete',{}, options); // empty body
}

10-08 06:20