Flutter 在flatter中单击按钮时如何将参数传递给web服务
我对颤振开发还不熟悉。你们能告诉我当点击按钮时如何将参数传递到url吗。多谢各位Flutter 在flatter中单击按钮时如何将参数传递给web服务,flutter,Flutter,我对颤振开发还不熟悉。你们能告诉我当点击按钮时如何将参数传递到url吗。多谢各位 import 'package:flutter/material.dart'; import 'package:minerva_admin/Homescreen.dart'; import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; class Login e
import 'package:flutter/material.dart';
import 'package:minerva_admin/Homescreen.dart';
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
class Login extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new LoginState();
}
}
class LoginState extends State<Login> {
final TextEditingController _userController = new TextEditingController();
final String url = "http://192.155.1.40:8088/restaurants";
List data;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Minerva Money"),
centerTitle: true,
backgroundColor: Colors.green,
),
backgroundColor: Colors.white,
body: new Container(
alignment: Alignment.topCenter,
child: new ListView(
children: <Widget>[
//image/profi
//form
new Container(
margin: const EdgeInsets.only(top: 100.0),
child: new Column(
children: <Widget>[
new TextField(
controller: _userController,
decoration: new InputDecoration(
hintText: 'Enter Email/Mobile Number',
icon: new Icon(Icons.person)
),
),
new Padding(padding: new EdgeInsets.all(10.5)), //add padding
new Center(
// Login button
child: new RaisedButton(
onPressed: (){
getSWData(_userController.toString());
},
color: Colors.green,
child: new Text("Login",
style: new TextStyle(color: Colors.white,
fontSize: 16.9))),
// Clear button
)
],
),
), //form ends here
new Padding(
padding: const EdgeInsets.all(14.0)),
],
),
),
);
}
Future<String> getSWData(String email) async {
var res = await http.get(
Uri.encodeFull(url), headers: {"Accept": "application/json"});
print("response" + "$url");
setState(() {
var resBody = json.decode(res.body);
// data = resBody["restos_cities"];
print("response" + "$resBody");
});
return "succees";
}
}
导入“包装:颤振/材料.省道”;
导入“package:minerva_admin/Homescreen.dart”;
导入“dart:async”;
导入“dart:convert”;
将“package:http/http.dart”导入为http;
类登录扩展StatefulWidget{
@凌驾
状态createState(){
返回新的LoginState();
}
}
类LoginState扩展状态{
最终文本编辑控制器_userController=新文本编辑控制器();
最终字符串url=”http://192.155.1.40:8088/restaurants";
列出数据;
@凌驾
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“Minerva货币”),
标题:对,
背景颜色:Colors.green,
),
背景颜色:Colors.white,
主体:新容器(
对齐:alignment.topCenter,
子:新列表视图(
儿童:[
//图像/profi
//形式
新容器(
边距:仅限常量边集(顶部:100.0),
子:新列(
儿童:[
新文本字段(
控制器:_userController,
装饰:新的输入装饰(
hintText:'输入电子邮件/手机号码',
图标:新图标(Icons.person)
),
),
新填充(填充:newedgeinsets.all(10.5)),//添加填充
新中心(
//登录按钮
孩子:新升起的按钮(
已按下:(){
getSWData(_userController.toString());
},
颜色:颜色。绿色,
子项:新文本(“登录”,
样式:新文本样式(颜色:Colors.white,
字体大小:16.9),
//清除按钮
)
],
),
),//表单到此结束
新填料(
填充:常量边集所有(14.0)),
],
),
),
);
}
未来getSWData(字符串电子邮件)异步{
var res=wait http.get(
encodeFull(url),头:{“Accept”:“application/json”});
打印(“响应”+“$url”);
设置状态(){
var resBody=json.decode(res.body);
//数据=resBody[“restos_cities”];
打印(“响应”+“$resBody”);
});
返回“成功者”;
}
}
有谁能解释一下,当点击buton获取数据时,如何将“email”参数中的textfield数据发送到web服务。先谢谢你。我在我的pubspec文件中添加了http:^0.11.3+16。首先,您必须启用
RaisedButton的onPressed
属性。在这里,您必须调用一些函数来传递您定义的textededitingcontroller
中的电子邮件参数:
onPressed: () {
yourFunction(_userController.text.toString());
},
然后,在“yourFunction”中使用从文本字段捕获的参数实现webservice调用
谢谢您的响应。如何将参数传递到url?。我编辑了我的代码,通常“get”操作将参数附加到url的末尾(一个简单的连接),但我不知道格式,因为我不知道您的Web服务的规范。为了正确地获取输入文本,应该调用“getSWData(_userController.text.toString())”而不是“getSWData(_userController.toString())”