Использовать Http-прокси в Flutter

#flutter #http

#flutter #http

Вопрос:

Я живу в стране с ограниченным доступом, и для использования таких сервисов, как Firebase, требуется VPN. итак, я создаю приложение flutter, которое использует Firebase в качестве серверной части, и я хочу знать, могу ли я установить прокси для всех подключений в приложении для запросов GET amp; POST и т. Д.?

Ответ №1:

Вы не сказали, для какой платформы, но, по крайней мере, для Unix-подобных вещей, большинство приложений и библиотек уважают переменную http_proxy среды, которую вы можете установить в большинстве оболочек, таких как:

 $ export http_proxy=http://server-ip:port/
$ export http_proxy=http://127.0.0.1:3128/
$ export http_proxy=http://proxy-server.mycorp.com:3128/
$ export http_proxy=http://foo:bar@server-ip:port/
$ export http_proxy=http://foo:bar@127.0.0.1:3128/
$ export http_proxy=http://USERNAME:PASSWORD@proxy-server.mycorp.com:3128/
 

Соответствующая строка будет специфична для вашей среды. Подробная информация об интерпретации переменных среды приведена по адресу: https://api.flutter.dev/flutter/dart-io/HttpClient/findProxyFromEnvironment.html .

Ответ №2:

  1. Для Windows, установив переменные среды (системные свойства)
 http_proxy=http://server_ip:port

https_proxy=http://server_ip:port
 
  1. pub_specs.yaml

    http_proxy: ^ 1.1.0

  2. main.dart
 import 'package:http_proxy/http_proxy.dart';
import 'package:flutter/foundation.dart';

...


void main() async {

  ...

  WidgetsFlutterBinding.ensureInitialized();
  HttpProxy httpProxy = await HttpProxy.createHttpProxy();
  httpProxy.host = "server_ip";// replace with your server ip
  httpProxy.port = "port";// replace with your server port
  HttpOverrides.global=httpProxy;

  ...