在颤振中调用get api时获得响应但没有获得键值,一些渲染问题,直到我搜索到相同的[重复]
Posted
技术标签:
【中文标题】在颤振中调用get api时获得响应但没有获得键值,一些渲染问题,直到我搜索到相同的[重复]【英文标题】:getting response but not getting key value while calling get api in flutter ,some rendering issue till i seached for the same [duplicate] 【发布时间】:2021-02-17 21:00:53 【问题描述】:成功:真 E/flutter(16591):[错误:flutter/lib/ui/ui_dart_state.cc(157)]未处理的异常:NoSuchMethodError:方法'[]'在null上调用。 E/颤振(16591):接收器:空 E/flutter (16591):尝试调用:
未来 _onSubmitClick(String ifscdataa) 异步
//String profile = url+ifscdataa;
final uri = url+ifscdataa;
paramsToken = widget._token;
final headers =
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest',
//'Authorization': 'Bearer $paramsToken',
'Authorization': widget._token,
;
print('Bearer $paramsToken');
Response response = await get(
uri,
headers: headers,
);
var res = json.decode(response.body);
print(res);
if (response.statusCode == 200)
setState(()
bank_name = res['data']['BankName'].toString() ?? "";
distrcit_name = res['data']['DistrictName'] ?? "";
branch_name = res['data']['BranchName'] ?? "";
state_name = res['data']['StateName'] ?? "";
print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$distrcit_name');
print(bank_name);
);
else if (response.statusCode == 401)
Fluttertoast.showToast(msg: res['message'], timeInSecForios: 3);
else
Fluttertoast.showToast(msg: res['message'], timeInSecForIos: 3);
【问题讨论】:
随问题附上代码会很有帮助 这是我对 api 的回应 - "success": true, "data": "BankName": "///// BANK OF ////", "StateName": " Rajasthan", "DistrictName": "//// city", "BranchName": "//// /// ROAD, //// city" @SriDattaYalla 请检查我添加我的代码 @nvoigt 对我没有帮助 medium.com/@diegoveloper/…这个解决方案与我的情况有关吗? 【参考方案1】:我认为这里出现了错误
bank_name = res['data']['BankName'].toString() ?? "";
distrcit_name = res['data']['DistrictName'] ?? "";
branch_name = res['data']['BranchName'] ?? "";
state_name = res['data']['StateName'] ?? "";
不要直接访问 res['data'],而是首先检查它是否存在
bool hasData = res['data']!=null;
if(hasData)
bank_name = res['data']['BankName'].toString() ?? "";
distrcit_name = res['data']['DistrictName'] ?? "";
branch_name = res['data']['BranchName'] ?? "";
state_name = res['data']['StateName'] ?? "";
else
bank_name = "";
distrcit_name = "";
branch_name = "";
state_name = "";
【讨论】:
好的,我用更新的试试这个。 我已经编辑了答案,请尝试一下 好的,能不能详细分享一下 你试过上面的答案吗?现在我已经根据您的需要对其进行了编辑。 告诉我这是否解决了您的问题以上是关于在颤振中调用get api时获得响应但没有获得键值,一些渲染问题,直到我搜索到相同的[重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Alamofire 的 Swift 3 中的 Web 服务的 PATCH API 调用中获得响应
颤振飞镖get.http响应给出html而不是json api