首页 > 解决方案 > Flutter response.body 为空

问题描述

我正在使用此 API 向此站点发出 http 请求以检索我的数据

https://fantasy.premierleague.com/api/bootstrap-static/

第一次使用时,我无法检索任何数据,经过一些研究,我通过简单的颤振升级解决了这个问题(我不知道问题是什么,或者升级后为什么解决了),然后过了几天我正在处理该项目,但问题再次发生,每次我尝试提出请求时我都会得到一个空的身体

http.get("https://fantasy.premierleague.com/api/bootstrap-static/")

我正在使用此行获取响应值,然后尝试将其解码为 JSON 值,但发生此错误

exeption occured : FormatException: Unexpected end of input (at character 1)

我已经知道发生这个错误是因为我试图解码一个空的身体,但我不明白为什么会这样

注意:我尝试了多个其他 API url,它们都可以正常工作!

标签: apiflutterdart

解决方案


如果您使用 cURL 转储标头,这就是我得到的:

HTTP/1.1 301 Moved Permanently
Server: Varnish
Retry-After: 0
Location: https://fantasy.premierleague.com/api/bootstrap-static/
Content-Length: 0
Accept-Ranges: bytes
Date: Sat, 21 Nov 2020 15:58:17 GMT
Via: 1.1 varnish
Connection: close
X-Served-By: cache-bom4748-BOM
X-Cache: HIT
X-Cache-Hits: 0
X-Timer: S1605974297.185069,VS0,VE0

HTTP/2 200 
server: Varnish
retry-after: 0
content-type: application/json
accept-ranges: bytes
date: Sat, 21 Nov 2020 15:58:17 GMT
via: 1.1 varnish
x-served-by: cache-bom4732-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1605974297.371758,VS0,VE0
content-length: 0

请求被重定向,但在 dart/flutter 中似乎没有办法解决这个问题。

检查这些答案:

https://stackoverflow.com/a/54832309/6156989

https://stackoverflow.com/a/56862713/6156989


推荐阅读