flutter_system_proxy 0.2.2 copy "flutter_system_proxy: ^0.2.2" to clipboard
flutter_system_proxy: ^0.2.2 copied to clipboard

A Flutter plugin to detect system proxy settings, helping non-proxy-aware HTTP clients retrieve proxy configurations for successful network requests.

Flutter System Proxy #

A Flutter Plugin to detect System proxy. When using HTTP client that are not proxy aware this plugin can help with finding the proxy from system settings which then can be used with HTTP Client to make a successful request.

Getting Started #

Installation #

Add flutter_system_proxy to your pubspec.yaml:

dependencies:
  flutter_system_proxy: ^0.2.0

Then run:

flutter pub get

Alternatively, install from the command line:

flutter pub add flutter_system_proxy

Basic Usage (Example With Dio) #

import 'package:flutter_system_proxy/flutter_system_proxy.dart';


...


var dio = new Dio();
var url = "http://....";
var proxy = await FlutterSystemProxy.findProxyFromEnvironment(url);
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
   (HttpClient client) {
      client.findProxy = (uri) {
        return proxy;
   };
};
var response = await dio.get(url);

Advanced Usage (Custom Dio Adapter) #


// Create a custom adapter that can help resolve proxy based on urls 
// (This is important as in some senerio there are PAC files which might have different proxy based on different urls)
class MyAdapter extends HttpClientAdapter {
  final DefaultHttpClientAdapter _adapter = DefaultHttpClientAdapter();

  @override
  Future<ResponseBody> fetch(RequestOptions options,
      Stream<Uint8List>? requestStream, Future? cancelFuture) async {
    var uri = options.uri;
    var proxy =
        await FlutterSystemProxy.findProxyFromEnvironment(uri.toString()); // This line does the magic
    _adapter.onHttpClientCreate = (HttpClient clinet) {
      clinet.findProxy = (uri) {
        return proxy;
      };
    };
    return _adapter.fetch(options, requestStream, cancelFuture);
  }

  @override
  void close({bool force = false}) {
    _adapter.close(force: force);
  }
}

// Use a wrapper around getting dio
void getDio(){
  var dio = Dio();
  dio.httpClientAdapter = MyAdapter();
  return dio;
}

0
likes
160
points
3.79k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin to detect system proxy settings, helping non-proxy-aware HTTP clients retrieve proxy configurations for successful network requests.

Repository (GitHub)
View/report issues

License

Apache-2.0 (license)

Dependencies

flutter

More

Packages that depend on flutter_system_proxy

Packages that implement flutter_system_proxy