Angular HttpClient在POST中使用URL参数

时间:2019-01-17 16:16:18

标签: angular angular-httpclient

今天,我尝试发送一个类似这样的post-Request。 http://host/start?time=123456789使用以下代码:

    const url = `/start`;
    const myParams = new HttpParams().set('time', toTimestamp(time).toString());
    return this.http.post(url, { headers: this.getHttpHeaders(), params: myParams }));

但是,发送的请求没有参数http://host/start。参数已在请求主体内发送。 API不接受该API,并且不允许我更改API。如何更改代码以在URL中包含参数?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如Sanyam所述,发帖请求看起来像...

http.post(url, data, httpOptions)

因此,在您的请求中,您缺少实际的身体部位...,因为这是一个POST请求。由于您无法控制API,因此可以在null部分添加body

return this.http.post(url, null, { headers: this.getHttpHeaders(), params: myParams }));

答案 1 :(得分:0)

完成时

return this.http.post(url, { headers: this.getHttpHeaders(), params: myParams }));

您正在请求正文中发送参数,这是在此处

  1. GET将URL中的数据发送到服务器以从资源中获取数据
  2. POST将主体中的参数发送到服务器以更新/创建 资源

按照您的要求执行以下顺序:

 http.post(url, data, httpOptions)