Угловой метод запроса HttpClient, как установить тело - PullRequest
0 голосов
/ 15 января 2019

Мне нужно отправить запрос на получение с телом. Я использую угловой 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'
        });
}

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Я последовал вашему совету, и вот мое решение для других в будущем ...

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 в моем бэкэнд-приложении.

Спасибо всем

0 голосов
/ 15 января 2019

Использование http.get() - это просто сокращение для http.request('GET'). Если вам действительно нужно отправить тело в формате JSON, вам придется использовать другой тип запроса - например, post. Примерно так может быть то, что вам нужно:

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

Возможно, вам придется изменить конечную точку API, чтобы ожидать другой HTTP-глагол.

...