【问题标题】:Flutter: Connection closed while receiving dataFlutter:接收数据时连接关闭
【发布时间】:2020-11-13 14:08:17
【问题描述】:

我正在调用 post API,有时我得到服务器的响应,有时我收到异常 Connection closed while receiving data。两种情况下的请求都是相同的,根据后端服务器日志,发送了响应但我没有收到。 我在模拟器和实际设备中都有这个问题。

try {
  final result =
      await http.post(url, body: encodedBody, headers: apiHeader);
  Map<String, dynamic> response = json.decode(result.body);

  print("Response: $response");

  return response;
} catch (error) {
  Map<String, dynamic> response = Map<String, dynamic>();
  response['success'] = false;
  response['message'] = error;
  return response;
}

【问题讨论】:

  • 您发送的标头是什么?它是否包含保持活动标题?请张贴标题
  • 我没有在标题中发送保持活动状态,发送这个可以解决我的问题。非常感谢
  • 我会将其发布为您问题的答案
  • 它可能会帮助未来的答案寻求者
  • @LucasAschenbach 我刚刚添加了这个连接头 this.apiHeader['Connection'] = "keep-alive";

标签: api http flutter dart httpexception


【解决方案1】:

这取决于您尝试调用的服务器或 Rest API。

有时需要仔细检查您是否使用了有效且适当的 URL 端点。

另一种可能性是它没有正确地在标头处接收身份验证。我曾经遇到过这个问题,并且通过将 url 作为端点进行身份验证得到了解决。尝试研究 server 或 rest api 是否支持最后提到的其他身份验证选项。

【讨论】:

    【解决方案2】:

    您的请求标头中的Keep-Alive标头可能丢失,请检查API所需的标头

    【讨论】:

      【解决方案3】:

      我遇到了获取请求的问题,有时我从服务器获得响应,有时我在同一个按钮单击事件中收到异常 Connection closed while receiving data。然后我发现数据库中特定表的记录数很大。我建议的解决方案是在backend server 中使用pagination

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 2023-02-05
        • 2012-06-03
        • 1970-01-01
        • 2020-05-15
        • 2011-10-19
        • 2013-10-16
        • 1970-01-01
        相关资源
        最近更新 更多