import 'dart:convert'; import 'dart:io'; import 'package:socks5_proxy/socks_client.dart'; class HttpService { final HttpClient _client; HttpService({String proxyHost = '127.0.0.1', int proxyPort = 9050}) : _client = HttpClient() { SocksTCPClient.assignToHttpClient(_client, [ ProxySettings(InternetAddress(proxyHost), proxyPort), ]); } Future request(String method, String url, {Map? headers, dynamic body}) async { final request = await _client.openUrl(method, Uri.parse(url)); headers?.forEach((key, value) { request.headers.set(key, value); }); if (body != null) { request.add(utf8.encode(json.encode(body))); } return await request.close(); } void close() { _client.close(); } }