Guias Detalhados
HTTP Client

Configurando o HttpClient

Antes de usar o HttpClient em sua aplicação, você deve configurá-lo usando dependency injection.

Fornecendo o HttpClient através de dependency injection

O HttpClient é fornecido usando a função auxiliar provideHttpClient, que a maioria das aplicações inclui nos providers da aplicação no arquivo app.config.ts.

export const appConfig: ApplicationConfig = {  providers: [    provideHttpClient(),  ]};

Se sua aplicação está usando bootstrap baseado em NgModule, você pode incluir provideHttpClient nos providers do NgModule da sua aplicação:

@NgModule({  providers: [    provideHttpClient(),  ],  // ... other application configuration})export class AppModule {}

Você pode então injetar o service HttpClient como uma dependência de seus components, services ou outras classes:

@Injectable({providedIn: 'root'})export class ConfigService {  private http = inject(HttpClient);  // This service can now make HTTP requests via `this.http`.}

Configurando recursos do HttpClient

provideHttpClient aceita uma lista de configurações de recursos opcionais, para habilitar ou configurar o comportamento de diferentes aspectos do cliente. Esta seção detalha os recursos opcionais e seus usos.

withFetch

export const appConfig: ApplicationConfig = {  providers: [    provideHttpClient(      withFetch(),    ),  ]};

Por padrão, o HttpClient usa a API XMLHttpRequest para fazer requisições. O recurso withFetch altera o cliente para usar a API fetch ao invés disso.

fetch é uma API mais moderna e está disponível em alguns ambientes onde XMLHttpRequest não é suportada. No entanto, ela possui algumas limitações, como não produzir eventos de progresso de upload.

withInterceptors(...)

withInterceptors configura o conjunto de funções interceptor que processarão as requisições feitas através do HttpClient. Consulte o guia de interceptors para mais informações.

withInterceptorsFromDi()

withInterceptorsFromDi inclui o estilo antigo de interceptors baseados em classe na configuração do HttpClient. Consulte o guia de interceptors para mais informações.

HELPFUL: Interceptors funcionais (através de withInterceptors) têm ordenação mais previsível e nós os recomendamos ao invés de interceptors baseados em DI.

withRequestsMadeViaParent()

Por padrão, quando você configura o HttpClient usando provideHttpClient dentro de um determinado injector, esta configuração substitui qualquer configuração para HttpClient que possa estar presente no injector pai.

Quando você adiciona withRequestsMadeViaParent(), o HttpClient é configurado para passar as requisições para a instância HttpClient no injector pai, uma vez que elas tenham passado por quaisquer interceptors configurados neste nível. Isso é útil se você deseja adicionar interceptors em um injector filho, enquanto ainda envia a requisição através dos interceptors do injector pai também.

CRITICAL: Você deve configurar uma instância de HttpClient acima do injector atual, ou esta opção não é válida e você receberá um erro de execução quando tentar usá-la.

withJsonpSupport()

Incluir withJsonpSupport habilita o método .jsonp() no HttpClient, que faz uma requisição GET através da convenção JSONP para carregamento de dados entre domínios.

HELPFUL: Prefira usar CORS para fazer requisições entre domínios ao invés de JSONP quando possível.

withXsrfConfiguration(...)

Incluir esta opção permite a customização da funcionalidade de segurança XSRF integrada do HttpClient. Consulte o guia de segurança para mais informações.

withNoXsrfProtection()

Incluir esta opção desabilita a funcionalidade de segurança XSRF integrada do HttpClient. Consulte o guia de segurança para mais informações.

Configuração baseada em HttpClientModule

Algumas aplicações podem configurar o HttpClient usando a API antiga baseada em NgModules.

Esta tabela lista os NgModules disponíveis em @angular/common/http e como eles se relacionam com as funções de configuração de provider acima.

NgModule Equivalente em provideHttpClient()
HttpClientModule provideHttpClient(withInterceptorsFromDi())
HttpClientJsonpModule withJsonpSupport()
HttpClientXsrfModule.withOptions(...) withXsrfConfiguration(...)
HttpClientXsrfModule.disable() withNoXsrfProtection()

Use com cuidado ao usar HttpClientModule em múltiplos injectors

Quando HttpClientModule está presente em múltiplos injectors, o comportamento dos interceptors é mal definido e depende das opções exatas e da ordenação de provider/import.

Prefira provideHttpClient para configurações com múltiplos injectors, pois ele tem comportamento mais estável. Veja o recurso withRequestsMadeViaParent acima.