我无法在颤动的特定网址上进行REST api调用

时间:2018-06-04 12:10:31

标签: dart flutter

我无法在此网址上进行简单的来电>>>

http://54.254.255.202:8080/user/status/S5454523D/ST. 

这个网址在其他任何像邮递员,铬,机器人或反应本地人一样颤抖的东西上工作得很好。我特别不知道它在20次尝试中只有1次起作用的原因。在日志中我得到类似的东西

E/flutter: [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
Connection closed before full header was received

此处还有我用来尝试这个简单的get请求的代码

Future<dynamic> getStatus() async {
var res;
String url = "http://54.254.255.202:8080/user/status/S5454523D/ST";
print(url);
var response = await http.get(
    Uri.encodeFull(url),
    headers: {"Accept": "application/json"}
    ).catchError((error){
      print(error);
}).whenComplete((){
  print("completed");
});
print(response);
return res;
}

我使用的任何其他网址都运行良好。请帮助。

2 个答案:

答案 0 :(得分:1)

尝试简化getStatus方法。这个版本似乎可靠地返回解码的json。

Future<Map> getStatus() async {
  try {
    Response r = await http.get(
      'http://54.254.255.202:8080/user/status/S5454523D/ST',
      headers: {
        'Accept': 'application/json',
      },
    );
    return json.decode(r.body);
  } catch (e) {
    return {'error': e.toString()};
  }
}

main() async {
  print(await getStatus());
}

答案 1 :(得分:0)

我花了一些时间在那上面,原因是它与邮递员一起工作,并且可以从生产端点进行呼叫。 问题是我连接了来自

的不同WIFI