dart:io의 HttpClient는 findProxy를 통해 프록시 결정을 받습니다. 콜백은 PAC 형식의 지시문을 반환합니다:

import 'dart:io';

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

이 클라이언트를 애플리케이션의 요청에 사용합니다. http://proxy.example.net:8080을 반환하는 것은 이 콜백에 맞지 않는 형식이며, PROXY 뒤에 호스트와 포트를 붙이는 형식이 지원됩니다. 허용된 공개 요청에는 HTTP 프록시 목록에서 HTTP 후보를 골라 그 지시문 형태로 만듭니다.

콜백은 대상 URI를 받으므로 의도적인 우회를 위해 DIRECT를 반환할 수 있습니다. PROXY proxy.example.net:8080; DIRECT 같은 결과는 프록시를 쓸 수 없을 때 직접 폴백도 허용합니다. 그 폴백이 필요 없으면 DIRECT를 빼십시오.

findProxy 함수가 없으면 이 API는 직접 연결을 사용합니다. 환경 기반 선택을 원하는 애플리케이션은 대신 HttpClient.findProxyFromEnvironment를 콜백에 지정할 수 있습니다.

이는 지원되는 네이티브 플랫폼에서 dart:io를 쓰는 Flutter 코드에 해당합니다. Flutter Web 요청은 브라우저의 네트워크 기능을 사용하며 브라우저의 프록시 정책이 필요합니다.

관련 글