我已经回答了这个问题的答案,但是都没有涵盖我似乎遇到的情况(由于缺乏理解答案,我可能错了)。因此,我应该问。
我已经用相同参数和数据的Postman测试了API,并且效果很好。
onPressed: ()async {
print('Counter: $counter, Type: $type, Phone: $phone, Token: $token');
print(counter.runtimeType);
if(counter != 0){
print('above post now');
var response = await http.post(
acceptPass, //final URL in string
body:{
'type': type, //string
'phone': phone, //string
'qty': counter //int. Tried sending as string too, didn't work.
},
headers: {
'token': token //string
}
);
print("something with the response here ");
print(response.statusCode);
}
},
所有值都不为null,在将它们放入post方法之前,我确实将它们打印出来并进行了检查。我还尝试将每个变量类型转换为字符串,然后将其发布,但无济于事。
答案 0 :(得分:0)
body
必须是Map<String, String>
。因此,您需要先将int
转换为字符串,然后再将其放入地图中。
在.toString()
之后添加counter
。
要让编译器协助您进行类型检查,可以按如下所示显式键入映射。
body: <String, String>{
'fieldName': 'fieldValue',
//etc