当前位置: 首页 > 知识库问答 >
问题:

获取“InternalLinkedHashMap”不是“FutureOr”类型的子类型

邹缪文
2023-03-14

我是Dart/Flutter的新手,我正在努力获得一个消耗网络服务的未来的结果:

 Future<Map> _readData() async {
   (...)


http.Response response = await http.post(
    request,
    headers: {
      "SOAPAction": "http://www.totvs.com/IwsConsultaSQL/RealizarConsultaSQL",
      "Content-Type": "text/xml;charset=UTF-8",
      "Authorization": "Basic bWVzdHJlOnRvdHZz",
      "cache-control": "no-cache"
    },
    body: utf8.encode(requestBody),
    encoding: Encoding.getByName("UTF-8")
).then((onValue){

  (...)


  var dataFinal = jsonDecode(jsondataFinal);

  return  dataFinal ;
});

在init状态下,我调用此函数,因此我可以使用此结果构建布局:

     @override
  void initState () {
    super.initState();
    _readData().then((data){
      setState(() {
        print(data);

      });

    });

  }

我总是得到这个例外:

_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<Response>'

你知道我做错了什么吗?

谢啦

共有2个答案

袁鸿雪
2023-03-14

你不能同时使用等待和等待。你的代码应该像下面这样

Future<Map> _readData() async {
(...)

http.Response response = await http.post(
    request,
    headers: {
      "SOAPAction": "http://www.totvs.com/IwsConsultaSQL/RealizarConsultaSQL",
      "Content-Type": "text/xml;charset=UTF-8",
      "Authorization": "Basic bWVzdHJlOnRvdHZz",
      "cache-control": "no-cache"
    },
    body: utf8.encode(requestBody),
    encoding: Encoding.getByName("UTF-8")
);

  var dataFinal = jsonDecode(response.body);

  return  dataFinal ;
}
秦毅
2023-03-14

此错误是否与此代码一起出现?

Future<Map> _readData() async {
  //...
  http.Response response = await http.post(
    request,
    headers: {
      "SOAPAction": "http://www.totvs.com/IwsConsultaSQL/RealizarConsultaSQL",
      "Content-Type": "text/xml;charset=UTF-8",
      "Authorization": "Basic bWVzdHJlOnRvdHZz",
      "cache-control": "no-cache"
    },
    body: utf8.encode(requestBody),
    encoding: Encoding.getByName("UTF-8")
  );
  //...
  var dataFinal = jsonDecode(jsondataFinal);
  return  dataFinal ;
}
 类似资料:
  • 我有一个问题与我的json.decode.我想从我的网站得到一些数据,但当我的网站说{数字: 5}我只得到这个错误(类型_InternalLinkedHashMap 但是,如果我的网站显示字符串{“Number”:5},我会得到正确的输出,并且错误格式为Exception:意外字符(在字符1处)。 这是我的颤振代码: 谢谢你的回答

  • 我试图从API中获取数据,但一直出现此错误。 获取时出现问题:'\u InternalLinkedHashMap 请告诉我如何修复此代码。 模型飞奔 API响应: 我想访问检查点项目,然后访问资源项目(我认为这与检查点的过程相同)。我正在使用列表,但我认为是不正确的,我应该使用地图,但我不知道如何使用。请给我指条路。

  • 我得到一个错误:输入'List'

  • 我正在尝试使用网络调用实现一个简单的新闻提要应用程序,其中屏幕将在列表视图中显示最新的故事。 在当前代码中,我从API获得了一个响应(因为我在日志中看到了整个响应主体),但似乎无法在UI中显示数据。我得到这个错误: 类型_InternalLinkedHashMap 这是JSON结构 根据我的理解,我只想首先在列表中显示,然后添加其他字段(在我清楚地理解网络概念之后),但得到上面提到的错误。这是我的

  • 我正在尝试使用Dio客户端进行API调用。当我收到响应时,它会抛出一个错误 “\u InternalLinkedHashMap”不是“String”类型的子类型 试图解决它,但我不能。下面是代码 后Api调用 模型类使用内置值 序列化程序类 帮我怎么解决

  • 我对Flutter更陌生。我想从API中获取类别和产品信息。我对类别没有问题,但是当获取产品时,我得到错误"未处理的异常:类型'_InternalLinkedHashMap 我看到了许多这一错误的例子,但我无法将其与我自己联系起来。 (产品Api) (产品类别)