当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。