如果用戶輸入錯誤的電子郵件和密碼,這是 statusCode 和 body 的回應。I/flutter (20074): 200 I/flutter (20074): {"code":1,"message":"invalid username or password","data":null}如果用戶輸入正確的電子郵件和密碼,這就是回應I/flutter (20074): 200 I/flutter (20074): {"code":0,"message":"success","data":{"Id":121106,"Name":"User 1","Email":"[email protected]","Token":"2db0ce86-2dc0-4381-97de-ce6e0c341d90"}}。如果用戶輸入了錯誤的電子郵件和密碼,我想驗證我的登錄。它將顯示“無效憑據”,并且不會轉到其他頁面。我的問題是當我response.body['code'] == 0對我的 if 陳述句進行此操作時,我收到了此錯誤The argument type 'String' can't be assigned to the parameter type 'int'。我怎么解決這個問題?
創建函式以呼叫登錄后 api
Future<void> login() async {
if(emailController.text.isNotEmpty && passController.text.isNotEmpty) {
var headers = {"Content-type": "application/json"};
var myBody = {
'email' : emailController.text,
'password' : passController.text,
};
var response = await http.post(Uri.parse("url"),
headers: headers,
body: jsonEncode( myBody ));
if(response.statusCode == 200 && response.body['code'] == 0) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const SecondRoute()));
} else {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text("Invalid Credentials.")));
}
} else {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text("Blank Field Not Allowed")));
}
}
uj5u.com熱心網友回復:
物件response.body是一個字串。要訪問回應中的單個物件,您首先需要解碼 json。
var response = await http.post(Uri.parse("url"),
headers: headers,
body: jsonEncode( myBody ));
final data = json.decode(response.body);
if (response.statusCode == 200 && data['code'] == 0) {
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/479411.html
上一篇:未解決的包“顫動”
