搜尋套件、儲存庫與 APP 分類

套件詳情v0.1.0

system_proxy

一個 Flutter 插件,用於取得系統插件。可用來為 dart HttpClient 設定代理以擷取請求。

AndroidiOS
近 30 天下載
8230
喜歡數
23
Pub 分數
150

安裝套件

flutter pub add system_proxy

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

system_proxy 套件是一個 Flutter 插件,可在 Android 與 iOS 上存取系統設定的 Proxy 設定。它讓開發者能夠取得系統的 Proxy 配置,並套用至 Dart 的 HttpClient,確保網路請求能遵守裝置的網路環境。這對於需要在企業或限制性網路後運作的應用程式特別實用,因為這些網路環境強制要求使用 Proxy 設定。該套件透過提供簡單的 API 來擷取 Proxy 細節,例如主機、通訊埠與排除規則,簡化整合過程。

適用情境

  • 在企業應用程式中存取系統代理設定
  • 使用系統代理配置 HttpClient
  • 確保符合公司網路政策
  • 在 Android 和 iOS 上自動處理代理設定
  • 在受限制的網路環境中啟用互聯網存取

主要特色

  • 在 Android 和 iOS 上檢索系統代理設定
  • 支援 Dart HttpClient 代理設定
  • 自動檢測代理主機和埠
  • 處理代理排除清單
  • 跨平台相容性

適合對象

  • 企業移動應用
  • 需要網路透明度的應用程式
  • 為受限網絡開發工具的開發者
  • 需要自動代理設定的專案
  • 在受控網路環境中部署的Flutter應用

使用建議

  • 需要適當的平台權限
  • 如果系統代理未設定,可能無法運作
  • 僅限 HTTP/HTTPS 代理設定
  • 不支援 SOCKS 代理
  • 依賴正確的系統級代理設定

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

system_proxy

A Flutter Plugin to get system proxy setting. It is used to proxy for Flutter and Dart HttpClient request。Because Dart HttpClient does not adapt the system proxy setting automatically in default, it's difficult to grab requests for testing .

获取系统代理配置。 可用于为flutter的Dart HttpClient的请求设置代理,因为默认Dart请求不会理睬系统代理配置,这对于抓取请求来进行测试等场景造成不小困难。

Getting Started

Install

Please add the plugin to pubspec.yaml.

Caution

It's useful for Android >= 23 .

Usage

Import

import 'package:system_proxy/system_proxy.dart';

Code

// the proxy value likes:  {port: 8899, host: 127.0.0.1}
Map<String, String> proxy = await SystemProxy.getProxySettings();
if (proxy != null) {
    print('proxy $proxy');
}
Setting Proxy for HttpClient
class ProxiedHttpOverrides extends HttpOverrides {
  String _port;
  String _host;
  ProxiedHttpOverrides(this._host, this._port);

  @override
  HttpClient createHttpClient(SecurityContext context) {
    return super.createHttpClient(context)
      // set proxy
      ..findProxy = (uri) {
        return _host != null ? "PROXY $_host:$_port;" : 'DIRECT';
      };
  }
}

void main() async {
  Map<String, String> proxy = await SystemProxy.getProxySettings();
  if (proxy == null) {
    proxy = {
    'host': null,
    'port': null
    };
  }
  HttpOverrides.global = new ProxiedHttpOverrides(proxy['host'], proxy['port']);
  runApp(MyApp());
}

所屬分類

原始碼儲存庫

使用此套件的專案