【问题标题】:How to make HTTPS request using HttpClient in dart?如何在飞镖中使用 HttpClient 发出 HTTPS 请求?
【发布时间】:2014-03-09 07:56:18
【问题描述】:

我正在使用来自 dart 的 HttpClient(dart:io 包,而不是 dart:http),我想发送一个 HTTPS 请求。有没有办法做到这一点?我似乎找不到允许我这样做的方法。

【问题讨论】:

  • 为什么不试试HttpClient.open(url)
  • 我没有看到具有该签名的方法....
  • 对不起,甚至没有看到 openUrl 的方法。我期待能够通过计划打开。其他方法不适合,因为我也需要其他 HTTP 动词(即 PUT 和 PATCH)。

标签: dart dart-html


【解决方案1】:
new HttpClient().getUrl(Uri.parse('https://www.somedomain.com'));

【讨论】:

  • 而且,它有效吗?我认为在这种情况下,您应该删除问题。
  • 不,因为没有带有签名的方法可以让我在此表单中指定 url。
  • 对不起,有一个方法,我没看到。我过于关注如何将方案传递给开放方法。还有另一种称为 openUrl 的方法可以完成这项工作。尽管如此,您不能将方案传递给 open 方法,这很奇怪。
  • 你能用openUrl 自行回答这个问题,以便未来的飞镖能看到吗?
  • 抱歉不知道 API 和浏览器中的差别这么大(暂时没用)。现在我明白为什么它不那么明显了。
【解决方案2】:

发送 HTTPS 请求的步骤与 dart/flutter 中的 HTTP 相同,你必须添加的一件事是允许自签名证书处理 badCertificateCallback,将这个添加到你的 HttpClient:

var httpClient = HttpClient();
      httpClient.badCertificateCallback =
          ((X509Certificate cert, String host, int port) =>
              true); // Allow self signed certificates

参考:https://medium.com/@reme.lehane/flutter-using-self-signed-ssl-certificates-in-development-c3fe2d104acf

【讨论】:

    【解决方案3】:
    HttpClient client = new HttpClient();
    client.getUrl(Uri.parse("http://www.example.com/"))
        .then((HttpClientRequest request) {
          // Optionally set up headers...
          // Optionally write to the request object...
          // Then call close.
          ...
          return request.close();
        })
        .then((HttpClientResponse response) {
          // Process the response.
          ...
        });
    

    引用:https://api.dart.dev/stable/2.13.1/dart-io/HttpClient-class.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-22
      • 2022-11-03
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多