http - Flutter - 向我的服务器发出 HTTP 发布请求时出错

标签 http dart flutter

所以我有这个 Future 函数,用于向我的服务器发出 HTTP 请求:

Future getReviewsComments(List reviewIDs) async {
  Map data = {
    "reviewIDs": [reviewIDs]
  };

  http.Response response = await http.post(
    Uri.encodeFull(config.domain + '/getReviewsComments'),
    body: data
  );

  if (response.statusCode != 200){
    return false;
  }
  return json.decode(response.body);
}

并且该函数在我的 initState 函数中运行,如下所示:

  void initState(){
    List reviewIDs = ["5c4962b37d6b5f50146b8df9", "5c4966901bd9c3141c2f4700"];
    eventActions.getReviewsComments(reviewIDs).then(
      (comments){
        print( "WORKDED");
      }
    );
    super.initState();
  }

但是当我运行该应用程序时,出现此错误:

E/flutter ( 7567): [ERROR:flutter/shell/common/shell.cc(186)] Dart Error: Unhandled exception:
E/flutter ( 7567): type 'List<dynamic>' is not a subtype of type 'String' in type cast
E/flutter ( 7567): #0      CastMap.forEach.<anonymous closure> (dart:_internal/cast.dart:286:25)
E/flutter ( 7567): #1      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach (dart:collection/runtime/libcompact_hash.dart:367:8)
E/flutter ( 7567): #2      CastMap.forEach (dart:_internal/cast.dart:285:13)
E/flutter ( 7567): #3      mapToQuery 
package:http/src/utils.dart:17
E/flutter ( 7567): #4      Request.bodyFields=
...

请问如何解决这个问题?

注意:print(reviewIDs) 返回[5c4962b37d6b5f50146b8df9, 5c4966901bd9c3141c2f4700]

最佳答案

bodyhttp.post可能只是以下之一:

  1. 字节数组 List<int>
  2. 一个字符串,通过以 UTF-8 编码将其转换为字节数组
  3. A Map<String, String>它将被编码成 HTML 表单数据,即 x-www-form-urlencoded

您正在传递 Map<String, List<String>> ,以上都不是。您的服务器需要什么?也许是一个 json 编码的字符串? (如果是这样,请使用 json.encode(data) 。)

关于http - Flutter - 向我的服务器发出 HTTP 发布请求时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708701/

相关文章:

HTTP 与不同主机保持事件状态

ios - 我应该为 Flutter 插件传入我的 Swift native 代码中的哪个 View Controller ?

android - flutter 错误 : type 'int' is not a subtype of type 'String' in type cast

flutter - `RouteAware` - 实现者取消订阅任何以前的依赖项?

dart - Flutter:自定义 Stepper 小部件需要 Material 小部件祖先

iOS 音频/声音不会在后台模式处于事件状态时在后台播放

c# - 错误 远程服务器返回错误 : (401) Unauthorized

ios - waitUntilAllTask​​sAreFinished 错误 Swift

html - 通过网页上传大文件

flutter :How to build a infinite list using future builder that display n-record at a time