【问题标题】:How to make https calls in Flutter?如何在 Flutter 中进行 https 调用?
【发布时间】:2021-04-24 13:13:35
【问题描述】:

我是 Flutter 开发的新手。我正在努力使 https 调用正常工作。每当我调用 https url 时,它都会引发以下错误:

SocketException:主机查找失败:“someserver.com”(操作系统错误:提供节点名或服务名,或未知,errno = 8)

下面是我正在使用的代码,

final ioc = new HttpClient();
    ioc.badCertificateCallback =
        (X509Certificate cert, String host, int port) => true;
    final http = new IOClient(ioc);
    return http
        .post(url, body: body, headers: headers, encoding: encoding)
        .then((response) {
      final String res = response.body;
      final int statusCode = response.statusCode;

      if (statusCode < 200 || statusCode > 400 || json == null) {
        throw new Exception("Error while posting data");
      }
      return _decoder.convert(res);
    });

我检查了下面的几个链接以及更多链接,并尝试了所有链接,但似乎没有任何效果。

另外请注意,我可以从浏览器访问服务器。同样的服务器也可以从 iOS 应用程序访问(使用 XCode 构建)。从 iOS 我可以访问服务器。

请帮忙!!!

【问题讨论】:

  • 请添加代码sn-p
  • 您要访问 xyz.com 吗?发布您的一些代码
  • 您是说 iOS 应用程序建立连接很好,然后您说您确实创建了 android 清单。这两件事不可能发生在同一个设备或模拟器上。您使用的是什么设备以及您做了什么来确保设备可以与您的服务器建立一般连接?
  • 不,我的意思是我已经使用 XCode 而不是颤振为 iPhone 构建了一个类似的应用程序。现在我正在使用颤振框架构建一个应用程序。我只在颤振应用程序上遇到服务器连接问题。

标签: api flutter http web-services https


【解决方案1】:

http 包提供了从 Internet 获取数据的最简单方法。

要安装http 包,请将其添加到pubspec.yaml 文件的依赖项部分。可以在here找到http包的最新版本

dependencies:
  http: <latest_version>

导入http包。

import 'package:http/http.dart' as http;

另外,在您的AndroidManifest.xml 文件中,添加 Internet 权限。

<uses-permission android:name="android.permission.INTERNET" />

然后像下面的函数,你将能够获取/获取/发布 HTTP 调用

Future<http.Response> getchData() {
  return http.get('https://jsonplaceholder.typicode.com/albums/1');
}

对于高级 HTTP 调用和管理,您可以使用 Dio 插件

【讨论】:

  • 我已经完成了所有这些,但似乎没有任何效果。请检查代码。我还在 androidmanifest 文件中添加了互联网权限。
  • 那么,请检查您的互联网连接+服务器的可访问性。服务器可能已关闭。
  • 我可以从浏览器访问服务器。
  • 然后检查您的手机/模拟器的互联网连接。使用其他设备重试。问题是清除无法建立连接。
  • 也构建了类似的iOS应用。我能够很好地从 iOS 应用程序访问服务器。唯一存在的问题是颤振应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 2017-08-31
  • 2016-03-05
  • 2014-03-17
  • 2012-08-10
相关资源
最近更新 更多