Um HttpClient do dart:io recebe a sua decisão de proxy através de findProxy. A função de retorno devolve uma diretiva ao estilo PAC:

import 'dart:io';

final client = HttpClient()
  ..findProxy = (_) => 'PROXY proxy.example.net:8080';

Use este cliente para os pedidos da aplicação. Devolver http://proxy.example.net:8080 é o formato errado para esta função; PROXY seguido do anfitrião e da porta é a forma suportada. Para pedidos públicos permitidos, tire um candidato HTTP da lista de proxies HTTP e formate-o como essa diretiva.

A função recebe o URI de destino, por isso pode devolver DIRECT para um desvio deliberado. Um resultado como PROXY proxy.example.net:8080; DIRECT também permite um fallback direto quando o proxy não pode ser usado. Omita DIRECT quando esse fallback não for desejado.

Sem uma função findProxy, esta API usa ligações diretas. As aplicações que querem uma seleção baseada no ambiente podem atribuir HttpClient.findProxyFromEnvironment à função.

Isto aplica-se ao código Flutter que usa dart:io em plataformas nativas suportadas. Os pedidos de Flutter Web usam as capacidades de rede do navegador e exigem a política de proxy do navegador.

Artigos relacionados