我收到以下未处理的异常:
[ERROR:flutter / lib / ui / ui_dart_state.cc(148)]未处理的异常:FormatException:意外的字符(字符1)
E / flutter(7717):
E / flutter(7717):^
我认为JSON无效,但是我不知道如何修改它。谁能帮我吗?
String url ='http://192.168.0.177/proto/submit_wo.php';
var res = await http.post(Uri.encodeFull(url),
headers: {"Accept":"applicarion/json"},
body:{
"id": '3' ,
"status_id": '1' ,
"category_id": selectedCategory.toString() ,
"title": titleController.text,
"description": description,
}
);
print(json.decode(res.body));
答案 0 :(得分:1)
使用 Uri.encodeFull(url)
代替 Uri.parse(url)
。
当我遇到同样的问题时,这对我有用。
答案 1 :(得分:0)
尝试使用双引号“代替单引号
{ “ id”:“ 3”, “ status_id”:“ 1”, “ category_id”:“ selectedCategory.toString()”, “ title”:“ titleController.text”, “ description”:“ description”, }
您可以尝试使用json here
答案 2 :(得分:0)
从res检查状态代码:
if (res.statusCode == 200) {
print(json.decode(res.body));
} else {
print(res.statusCode);
}
我想那不行。
答案 3 :(得分:0)
您的客户端需要JSON,但服务器返回HTML。
答案 4 :(得分:0)
有同样的问题。我试图从baseurl获取数据,而不是从baseurl / products.json获取数据。所以最后,它返回了我html类型,而不是json类型。验证您的是否正确。
答案 5 :(得分:0)
1-有时是因为您在API链接之前放置了空白或符号,所以必须将其删除
2-确保它返回JSON格式,因为有时您应该使用此格式
Embedding
3-您应该使用字符依赖性
注意:如果您要解析JSON数据,则可能会出错
答案 6 :(得分:0)
我遇到了同样的问题,我不得不检查 PHP Api 中的数据是否为空。如果传入的数据例如 - if (!Empty ($ order)) - 不为空,则让条件起作用。这样我的问题就解决了。
$order = $db->select("SELECT * FROM orders ORDER BY orderId ASC");
$list = array ();
if(!empty($order) && $order->num_rows > 0) (
while($rowdata = $order->fetch_assoc()) (
//array_push($list, $rowdata);
$list[] = $rowdata;
}
}
$db->link->close();
header ('Content-Type: application / json; charset = utf-8');
echo json_encode ($list);
return;