當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Dart HttpClient.connectionFactory用法及代碼示例

dart:io 庫中HttpClient.connectionFactory 屬性的用法介紹如下。

用法:

void connectionFactory=(Future<ConnectionTask<Socket>> f(Uri url, String? proxyHost, int? proxyPort)?)

設置用於創建套接字連接的函數。

請求的 URL(例如通過 getUrl )和代理配置( f.proxyHostf.proxyPort )作為參數傳遞。如果連接不是通過代理建立的,f.proxyHostf.proxyPort 將是 null

由於可以根據主機和端口重用連接,因此重要的是函數不要忽略 f.proxyHostf.proxyPort 如果它們不是 null 。如果代理對返回的 Socket 沒有意義,您可以設置 findProxy 以使用直接連接。

例如:

import "dart:io";

void main() async {
  HttpClient client = HttpClient()
    ..connectionFactory = (Uri uri, String? proxyHost, int? proxyPort) {
        assert(proxyHost == null);
        assert(proxyPort == null);
        var address = InternetAddress("/var/run/docker.sock",
            type: InternetAddressType.unix);
        return Socket.startConnect(address, 0);
    }
    ..findProxy = (Uri uri) => 'DIRECT';

  final request = await client.getUrl(Uri.parse("http://ignored/v1.41/info"));
  final response = await request.close();
  print(response.statusCode);
  await response.drain();
  client.close();
}

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 connectionFactory property。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。