Flutter 在flatter中编写http post请求的方法

Flutter 在flatter中编写http post请求的方法,flutter,dart,http-post,Flutter,Dart,Http Post,我正在写一个酒店注册应用程序,在那里我发送如下的帖子请求 checkNetworkConnection只是检查设备上是否存在活动连接的id,如果为真,则我正在调用postFormData方法 Future checkNetworkConnection()异步{ 试一试{ 最终结果=等待InternetAddress.lookup(“www.google.com”); if(result.isNotEmpty&&result[0].rawAddress.isNotEmpty){ postFormD

我正在写一个酒店注册应用程序,在那里我发送如下的帖子请求

checkNetworkConnection
只是检查设备上是否存在活动连接的id,如果为真,则我正在调用
postFormData
方法

Future checkNetworkConnection()异步{
试一试{
最终结果=等待InternetAddress.lookup(“www.google.com”);
if(result.isNotEmpty&&result[0].rawAddress.isNotEmpty){
postFormData()。然后((val){
if(jsonDecode(val.body)[0][“响应”]=“假”){
设置状态(){
isLoading=false;
//Isabing=假;
});
打印(val.body);
打印(“出了问题”);
显示对话框(
上下文:上下文,
生成器:()=>新建警报对话框(
标题:文本(“你好”),
内容:文本(“出错”),
),
);
}else if(jsonDecode(val.body)[0][“response”]==“true”){
设置状态(){
isLoading=false;
//Isabing=假;
});
打印(val.body);
打印(“已成功添加酒店”);
显示对话框(
上下文:上下文,
生成器:()=>新建警报对话框(
标题:文本(“已成功添加酒店”),
内容:文本(“你好!欢迎来到j1”),
));
}
}).catchError((错误){
设置状态(){
isLoading=false;
});
显示对话框(
上下文:上下文,
建筑商:(){
返回新警报对话框(
标题:Text(“error!”),内容:Text(error.toString());
});
});
}
}关于SocketException捕获(41;{
设置状态(){
isLoading=false;
});
显示对话框(
上下文:上下文,
生成器:()=>新建警报对话框(
标题:正文(
“连接错误!”,
样式:TextStyle(
颜色:Colors.redAccent,fontwweight:fontwweight.bold),
),
内容:文本(“检查您的互联网连接!”),
));
}
}
postFormData
方法如下

Future postFormData()异步{
//我刚刚排除了父项和头的声明,因为它们太多了^ u^!
最终响应=等待http
.post(“https://thej1.app/apiDataReq",
正文:父级,标题:httpHeaders)
.然后((val)=>val)
.超时(持续时间(秒:5))
.catchError((){
设置状态(){
isLoading=false;
});
显示对话框(
上下文:上下文,
建筑商:(\u)=>
新建AlertDialog(标题:文本(“错误”),内容:文本(“错误”);
});
返回响应;
}
还有其他类似的方法吗?像未来建设者

我的响应体有一个结构,这样我可以创建响应模型。但我无法在将来的生成器中实现它。我还希望捕获异常和超时错误


提前感谢

您能更具体地说明您需要什么帮助吗?是否要使用Future Builder而不是当前实现?你想捕捉错误吗?有点不清楚。你认为我目前的实施情况如何?好吗?或者我真的需要改变这个?如果没有,我们可以用future builder来实现吗?所以您的代码可以工作,但您想知道是否有更好的方法来实现它?你想用未来的建筑商吗?是的!我的代码运行得很好,但我只是想知道是否有更好的方法来实现它,就像FutureBuilder是一个选项一样,如果有其他方法,请建议