Flutter使用http库时报错:命名参数body、headers未定义如何解决?
问题原因
你出现报错的核心原因是参数归属写错了:body、headers是http.post、http.put方法的自有命名参数,你代码里误将这两个参数写到了Uri.parse()的入参括号内,而Uri.parse方法仅接收字符串类型的URL作为入参,自然无法识别这两个不存在的参数,就会抛出参数未定义的错误。
修复方案
只需要把Uri.parse()的闭合右括号挪到URL字符串的末尾,让body和headers归属于外层的http.post/http.put方法即可,修正后的对应代码片段如下:
addTodoModel方法修正
var response = await http.post(Uri.parse('$API_URL/todos?key=$API_KEY'), body: bodyString, headers: {'Content-Type': 'application/json'});
updateTodo方法修正
var response = await http.put(Uri.parse('$API_URL/todos/$todoId?key=$API_KEY'), body: bodyString, headers: {'Content-Type': 'application/json'});
修改完成后错误就会消失。
内容的提问来源于stack exchange,提问作者mahognygoat
相关产品推荐
相关产品推荐

