Angular HttpClient 请求方法如何设置正文



我需要发送带有正文的获取请求。我使用角度的HttpClient。我知道 get 方法不允许发送正文,所以我改用请求方法,但我不明白如何使用它。

我能够在没有正文部分的情况下从示例波纹管中获取数据,但我确实需要以 JSON 格式发送正文。

    request(req?: any): any{
    const options = createRequestOption(req);
    return this.http
        .request<ISubscriber[]>("GET", this.resourceUrl,
        {
            body: '[{"key": "phoneLineType", "operation": ">", "value": "200"}]',
            headers: new HttpHeaders({'Content-Type' : 'application/json'}),
            params: options,
            observe: 'response'
        });
}

使用 http.get() 只是 http.request('GET') 的简写。如果您确实需要发送 JSON 正文,则必须使用其他类型的请求 - 例如 post。像这样的东西可能是你需要的:

return this.http
  .post<ISubscriber[]>(
    this.resourceUrl,
    '[{"key": "phoneLineType", "operation": ">", "value": "200"}]',
    {
      params: options
    {
  )

您可能需要更改 API 终端节点以期望不同的 HTTP 谓词。

我听从了你的建议,这是我将来对其他人的解决方案......

queryPost(body: string, req?: any) : any {
    const options = createRequestOption(req);
    return  this.http.post<ISubscriber[]>(this.searchUrl, body,
            {
                headers : new HttpHeaders({"Content-Type": "application/json"}),
                params: options,
                observe: 'response'
            });
}

还提到,我必须在后端应用程序中创建一个新的 Post 端点。

谢谢大家

最新更新