Flutter发送HTTP Post请求时触发ClientException(Invalid response line)错误
Flutter调用Python API出现ClientException (Invalid response line)问题排查
我在Flutter应用中向Python搭建的API发送POST请求时,持续收到错误:Exception has occurred. ClientException (Invalid response line)。
相关代码
Future<http.Response> testPost(workout_type, bodypart, workout_freq, weights_pref, email) async { final uri = Uri.parse('http://10.0.2.2:5554/api/save-workkout'); final headers = { 'Content-Type': 'application/json' }; Map<String, dynamic> body = { "workout_type": workout_type, "bodypart": bodypart, "workout_freq": workout_freq, }; String jsonBody = json.encode(body); print(body); final resp = await http.post( uri, headers: headers, body: jsonBody ); print(resp.body); return resp; }
待发送的数据
var workout_type = 1; var bodypart = [1, 20]; var workout_freq = 2;
排查方向与解决方案
- 检查API路径拼写:代码中URI的
save-workkout存在拼写错误,多了一个字母k,应改为save-workout。路径错误会导致API端无法匹配路由,返回非标准HTTP响应,触发该异常。 - 验证Python API的响应格式:确保Python API在处理请求后返回符合HTTP规范的响应,包含正确的状态码、响应头和合法的响应体。如果API内部报错(比如未捕获的异常),可能返回不符合协议的内容,导致Flutter端解析失败。
- 测试API可用性:用Postman或curl直接调用API,验证是否能得到正常响应。示例curl命令:
如果直接调用也异常,说明问题出在Python API端,需排查路由配置、请求处理逻辑。curl -X POST http://10.0.2.2:5554/api/save-workout -H "Content-Type: application/json" -d '{"workout_type":1,"bodypart":[1,20],"workout_freq":2}' - 确认数据序列化兼容性:确保Python端能正确解析Flutter发送的JSON数据,尤其是
bodypart数组类型,检查Python代码中是否有针对数组参数的正确处理逻辑。
内容的提问来源于stack exchange,提问作者LiuBeiBei
相关产品推荐
相关产品推荐

