网络请求参数是否必须是String类型,为什么呢

来源:9-6 本章小结

慕勒6194056

2022-05-26

老师好,我封装网络请求参数时使用如下代码:
var params = <String,dynamic>{};
MyRequest add(String k,Object v){
params[k] = v;
return this;
}
的时候运行时会报出type ‘int’ is not a subtype of type ‘Iterable’这个问题。
改成:
var params = <String,String>{};

MyRequest add(String k,Object v){
params[k] = v.toString();
return this;
}
就没问题了,请问是为什么呢,flutter只能接受String类型的网络参数吗,另外map类型的参数可以直接使用toString传递吗。
补充一下地址拼接是使用Uri.https(“域名”, “路径”,params);进行拼接的

写回答

1回答

CrazyCodeBoy

2022-05-26

因为map中的dynamic在使用的时候只能接受一种具体类型,可以改成这种实现:
  Map<String, dynamic> header = {};

  ///添加header
  HiBaseRequest addHeader(String k, Object v) {
    header[k] = v.toString();
    return this;
  }
0
1
慕勒6194056
非常感谢
2022-05-27
共1条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3270 问题

查看课程