Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Atualização de HttpModule para HttpClientModule

Estou tentando migrar a classe HTTP para HTTPClient no Angular mas estou travado e as tentativas que eu tento não funcionam..

Eu vou colocar abaixo como estava sendo feito antes e nos comentários o que eu tentei fazer para alterar (além de já ter importado o HttpClient no app.module)

import { Injectable, OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { Environment } from '../app.component';
import { Http, Header } from '@angular/http';
//import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';

//imports dos meus components

@Injectable()
export class CompanyService implements OnDestroy {
    private url = Environment.origin;
    private urlMainSearch = Environment.MAIN_SEARCH;
    private urlSearchAll = Environment.SEARCH_ALL;
    private headers = new Headers({
    //private headers = new HttpHeaders({
        'Accept': 'application/cp+json',
        'Content-Type': 'application/json'
    });
    private headersFile = new Headers({
    //private headersFile = new HttpHeaders({
        'Accept': 'application/cp+json',
        'Content-Type': 'multipart/form-data; boundary=something'
    });

    constructor(private http: Http) { }
    //constructor(private http: HttpClient) { }

    buscarEmpresas(pesquisa: string): Observable<any> {
        return this.http.get(`${this.url}/companies/${pesquisa}/search`, { headers: this.headers })
            .pipe(map((response) => response.json().response));
    }
    /* return this.http.get<any>(`${ this.url }/companies/${ pesquisa }/search`, { headers: this.headers, observe: 'response' } )
     *       .pipe(map(res => res ));
     * -- também tentei-- return this.httpClient.get<any>(`${ this.url }/companies/${ pesquisa }/search`, { headers: this.headers }*/

    getEmpresaByUrlLink(urlLink: string): Observable<Retorno<Empresa>> {
        return this.http.get(`${this.url}/companies/link/${urlLink}`, { headers: this.headers })
            .pipe(map((response) => new Retorno<Empresa>(response.json())));
    }
    /*  return this.http.get<Retorno<Empresa>>(`${this.url}/companies/link/${urlLink}`, { headers: this.headers })
     *      .pipe(map((response) => new Retorno<Empresa>(response)));*/

Ao fazer as mudanças o primeiro método acaba não trazendo nenhum resultado e o segundo retorna 500.

1 resposta
solução!

Fala ai Enzo, tudo bem? Isso é um pouco chatinho de fazer, dá uma olhada nesse artigo: https://www.telerik.com/blogs/updating-to-angular-httpclient-simpler-http-calls

Ele explica muito bem os detalhes e passos necessários, talvez possa te ajudar.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software