İçeriğe geç
Guides 3 dk okuma 1171 görüntülenme

Dart/Flutter'da proxy kullanımı

Dart ve Flutter'da proxy kurulumu: HttpClient, dio, SOCKS5 ve mobil uygulamalarda proxy ile çalışmanın özellikleri.

Dart/Flutter'da proxy kullanımı

Dart/Flutter'da proxy kullanımı

Dart/Flutter'da proxy'ler

Dart, Flutter uygulamaları için bir programlama dilidir. Dart'ta proxy'lerle çalışma, standart HttpClient ve popüler kütüphaneler (dio, http) aracılığıyla yapılır.

Standart HttpClient

HTTP proxy

import 'dart:io';

void main() async {
  final client = HttpClient();

  // Proxy yapılandırması
  client.findProxy = (uri) {
    return "PROXY proxy_ip:8080";
  };

  final request = await client.getUrl(
    Uri.parse("https://httpbin.org/ip")
  );
  final response = await request.close();

  await response.transform(utf8.decoder).forEach(print);
  client.close();
}

Kimlik doğrulama ile

import 'dart:io';

void main() async {
  final client = HttpClient();

  client.findProxy = (uri) {
    return "PROXY proxy_ip:8080";
  };

  // Proxy kimlik doğrulamasının işlenmesi
  client.authenticate = (uri, scheme, realm) async {
    client.addProxyCredentials(
      "proxy_ip",
      8080,
      "realm",
      HttpClientBasicCredentials("username", "password")
    );
    return true;
  };

  final request = await client.getUrl(
    Uri.parse("https://httpbin.org/ip")
  );
  final response = await request.close();

  await response.transform(utf8.decoder).forEach(print);
  client.close();
}

Doğrudan bağlantı (proxy'siz)

client.findProxy = (uri) => "DIRECT";

Koşullu yönlendirme

client.findProxy = (uri) {
  if (uri.host.contains("target-site.com")) {
    return "PROXY proxy_ip:8080";
  }
  return "DIRECT";
};

Dio kütüphanesi

Dio, Flutter için en popüler HTTP kütüphanesidir.

Kurulum

# pubspec.yaml
dependencies:
  dio: ^5.4.0
  dio_proxy_adapter: ^0.0.2  # proxy'ler için

Dio ile HTTP proxy

import 'package:dio/dio.dart';
import 'dart:io';

void main() async {
  final dio = Dio();

  // HttpClient adaptörü üzerinden proxy yapılandırması
  (dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
    final client = HttpClient();
    client.findProxy = (uri) {
      return "PROXY proxy_ip:8080";
    };
    // Kendinden imzalı sertifikalar için (test)
    client.badCertificateCallback = (cert, host, port) => true;
    return client;
  };

  final response = await dio.get("https://httpbin.org/ip");
  print(response.data);
}

Kimlik doğrulama ile

(dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
  final client = HttpClient();
  client.findProxy = (uri) => "PROXY proxy_ip:8080";
  client.addProxyCredentials(
    "proxy_ip",
    8080,
    "",
    HttpClientBasicCredentials("user", "pass")
  );
  return client;
};

SOCKS5 proxy

socks5_proxy ile

# pubspec.yaml
dependencies:
  socks5_proxy: ^1.0.4
import 'dart:io';
import 'package:socks5_proxy/socks_client.dart';

void main() async {
  // SOCKS5 istemcisi oluşturma
  final proxy = SocksTCPClient.connect(
    [ProxySettings(InternetAddress("proxy_ip"), 1080,
      password: Password("username", "password"))],
    InternetAddress("93.184.216.34"), // hedef IP
    80,
  );

  // Socket'i HTTP istekleri için kullanın
}

Sistem proxy'si üzerinden SOCKS ile

client.findProxy = (uri) {
  return "SOCKS5 proxy_ip:1080";
};

Not: Dart'taki standart HttpClient yalnızca PROXY (HTTP) ve DIRECT destekler. SOCKS için üçüncü taraf kütüphaneler gereklidir.

Flutter'a özgü noktalar

Android yapılandırması

Android'de şifrelenmemiş (cleartext) HTTP proxy'lerle çalışmak için network_security_config.xml ayarı gereklidir:

<!-- android/app/src/main/res/xml/network_security_config.xml -->
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

iOS yapılandırması

iOS'ta proxy'ler URLSession sistem ayarları üzerinden çalışır. Flutter uygulaması sistem proxy'sini otomatik olarak kullanır.

Ortam değişkenleri

Debug modunda proxy'ler değişkenler aracılığıyla ayarlanabilir:

// Başlatma argümanları aracılığıyla
// flutter run --dart-define=HTTP_PROXY=http://proxy_ip:8080

Proxy rotasyonu

import 'dart:io';
import 'dart:math';

final proxies = [
  "PROXY proxy1:8080",
  "PROXY proxy2:8080",
  "PROXY proxy3:8080",
];

final random = Random();

void main() async {
  final client = HttpClient();

  client.findProxy = (uri) {
    return proxies[random.nextInt(proxies.length)];
  };

  // İstekler farklı proxy'ler kullanacak
  for (var i = 0; i < 10; i++) {
    final request = await client.getUrl(
      Uri.parse("https://httpbin.org/ip")
    );
    final response = await request.close();
    final body = await response.transform(utf8.decoder).join();
    print("Request $i: $body");
  }

  client.close();
}

Hata yönetimi

try {
  final request = await client.getUrl(uri);
  final response = await request.close();
  // yanıtı işle
} on SocketException catch (e) {
  print("Connection error: $e");
} on HttpException catch (e) {
  print("HTTP error: $e");
} on HandshakeException catch (e) {
  print("TLS/SSL error: $e");
} catch (e) {
  print("Unexpected error: $e");
}

Sonuç

Dart ve Flutter, HTTP proxy'lerle çalışmak için temel ancak yeterli araçlar sunar. Gelişmiş senaryolar (SOCKS5, kimlik doğrulama) için Dio'yu özel bir HttpClient adaptörüyle kullanın. Flutter uygulamaları geliştirirken Android ve iOS platformlarının özelliklerini dikkate alın.

Güncellendi: 06.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.