【问题标题】:Flutter Http post call Doesn't work on web and works on mobile onlyFlutter Http post call 不适用于网络,仅适用于移动设备
【发布时间】:2021-07-04 08:43:40
【问题描述】:
  loginUser(email, password) async {
    var url = Uri.parse
        .call("https://us-central1-agenie-webapp.cloudfunctions.net/api/login");
    final http.Response response = await http.post(
      url,
      headers: <String, String>{
        'Content-Type': 'application/json',
      },
      body: jsonEncode(<String, String>{'email': email, 'password': password}),
    );
    if (response.statusCode == 200) return response.body;
    return null;
  }

这是 api post 调用,当我在 web localhost 上使用 flutter run 运行它时,当我点击登录按钮调用此函数时,按下它会在 vscode 中打开一个名为 browser_client.dart 的窗口并转到第 69 行它显示:

 unawaited(xhr.onError.first.then((_) {
      // Unfortunately, the underlying XMLHttpRequest API doesn't expose any
      // specific information about the error itself.
      completer.completeError(
          ClientException('XMLHttpRequest error.', request.url),
          StackTrace.current);
    }));

有什么解决办法吗?谢谢

【问题讨论】:

    标签: flutter http dart web


    【解决方案1】:

    我建议你尝试使用 dio 包 (https://pub.dev/packages/dio),它在我的 web 项目中工作。

    【讨论】:

    • 能否提供使用 dio 的 post 方法的代码示例?
    • 这是一个来自包发布页面的示例:response = await dio.post( 'http://www.dtworkroom.com/doris/1/2.0.0/test', data: {'aa': 'bb' * 22} ); 您可以在此处找到更多信息:pub.dev/packages/dio#examples
    猜你喜欢
    • 2023-02-13
    • 2019-05-16
    • 2014-01-21
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2022-07-06
    • 2014-07-23
    相关资源
    最近更新 更多