如何将“ body”参数发送到HttpClient.get()?

时间:2019-04-10 17:51:13

标签: php angular httpclient postman angular7

我有一个用PHP创建的“ api rest”,该服务返回一个带有“ header”,“ body”,“ get”,“ pos”参数的JSON,无需任何类型的验证即可接收。 现在,我已经创建了一个与“ api rest”连接的直角服务,在那里,我遇到的问题是我想将参数发送为“ BODY”,但是我不知道如何,调查中,但我尚未找到形状。 是否可以通过HttpClient.get()发送“正文”?

to test my service use "postman".

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class ServicioService {
  constructor(private http: HttpClient) { }
  getQuery(query: string){
    const url = `http://localhost:8080/servicio/`;

    const headers = new HttpHeaders({
      'Authorization': 'Bearer BQAiaibx-we0RSlZFN29B5TPF4t6egxbuuEsc5ZYZhpamHUhImd5'
    });
    const params = new HttpParams()
    .set('page', '2')
    .append('page', '3')
    .set('sort', 'abc');
    return this.http.get (url, { params, headers});
  }
  getNewReleases(){
    return this.getQuery("")
                .pipe( map((data: any) => {
                  return data;
                }));

  }
}

this is what the console prints when executing the code.

1 个答案:

答案 0 :(得分:2)

GET请求没有 body 。 您应该使用POST或PUT。

您可以阅读here有关http方法的一些信息。 关于GET: GET方法请求指定资源的表示形式。使用GET的请求应该只检索数据,并且没有其他作用

因此,发送正文是错误的,因为GET方法不应更改任何内容。