如何在dart的http请求正文中发送布尔值或整数?该文档说,我只能发送字符串,列表或地图。如何使其在Dart中适用于布尔值或整数?
答案 0 :(得分:0)
正如您在文档中所看到的,您只能发送这三件事:字节数组,字符串或字符串到字符串的映射。实际上,最后,您只是发送一个字节数组。其他选项将在发送之前转换为字节。
使用utf-8(或由内容类型标头指定的其他某种编码)将字符串转换为字节,从而将字符串转换为字节。
字符串到字符串的映射首先编码为x-www-form-urlencoded
,然后编码为字节。当然,这种编码只能编码字符串。
因此,对您问题的答案实际上取决于服务器希望在何处/如何接收字段。如果期望它们以某种形式存在,那么您有责任将布尔值转换为服务器期望的任何字符串。也许是'true'/'false'或'1'/'0'或其他。使您的地图像这样:
int someInt;
bool someBool;
var formData = <String, String>{
'an_int_value' : someInt.toString(),
'a_bool_value' : someBool.toString(), // assuming 'true'/'false' is OK
};
还要考虑服务器需要完全不同的编码(例如JSON)的可能性。然后,您可以将地图转换为JSON,然后将其作为字符串传递,并适当地设置内容类型。
答案 1 :(得分:0)
尝试在我的项目中使用的这种方法
void apiPost(){
var body = jsonEncode(
{
"string":"test",
"bool":true,
"int":1
});
http.post("url here",body: body,headers: {"Content-Type": "application/json"}).then((response) {
Map map = json.decode(response.body);
});
}