Search code examples
angularangular-httpclient

Angular HttpClient request method how to set body


I need to send a get request with body. Im using angular HttpClient. I understand that get method does not allow to send body, so i'm triyng the request method instead but i cant understand how to use it.

I was able to get data from the exemple bellow without the body part, but i really need to send the body as JSON format.

    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'
        });
}

Solution

  • Using http.get() is just a shorthand for http.request('GET'). If you really need to send a JSON body, then you'll have to use another type of request - such as post. Something like this might be what you need:

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

    You may need to change your API endpoint to expect a different HTTP verb.