flutter - 如何使用从共享首选项 json 文件中获得的数据的返回值作为参数
问题描述
我如何将其用作我的 url 参数
用户数据['用户名']
我的共享首选项文件中有 json 数据。因此,我尝试获取登录用户的用户名,因为我想将其用作端点的参数。
我可以在控制台上很好地打印用户名,但是当尝试在链接上添加它时,我得到的 statusCode 响应是:
null.
E/flutter ( 906): Receiver: null
E/flutter ( 906): Tried calling: []("UserName")
请问如何提取他的用户名并将其添加到端点:
这是共享首选项片段的端点,它给了我用户名:
var q;
var userData;
void _getUserInfo() async {
SharedPreferences localStorage = await SharedPreferences.getInstance();
var userJson = localStorage.getString('loginRes');
user = json.decode(userJson);
setState(() {
userData = user;
});
print(userData['UserName']);
}
这就是我想在下面的获取请求链接上使用它的地方:
Future<void> get_farmer_eop() async {
final response = await http.get(
'http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${userData['UserName']}',
headers: _setHeaders());
print('${response.statusCode}popo');
if (response.statusCode == 200) {
final jsonStatus = jsonDecode(response.body);
setState(() {
q = jsonStatus['Eop'];
});
print('trandid');
print('${q['TransId']}kukuk');
} else {
throw Exception();
}
}
_setHeaders() => {
'Content-type': 'application/json',
'Accept': 'application/json',
};
但是在控制台上我打印了用户名,如果我尝试硬编码agentName,它是用户名参数示例agentName = johndoh,它可以工作,但是当userData ['UserName']我一直为空时,有人可以帮助我吗?
解决方案
您使用的网址格式错误,请尝试以下操作:
final response = await http.get(
"http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${userData['UserName']}",
headers: _setHeaders());
推荐阅读
- javascript - html 页面是从磁盘缓存加载的,但 event.persisted 为 false
- python - Keras in_top_k 损失
- python - 访问一个标签内的多个标签
- macos - Automator AppleScript 日志不起作用。我做错了什么?
- regex - 带后缀的可选命名捕获组
- datetime - 试图在颤动中将时间戳从 twitter api 转换为 DateTime
- python - Dash:如何通过 CSS 控制图形样式?
- c# - 将通用列表从 DerivedClass 转换为 BaseClass
- python - 在电报机器人中从内联模式发送本地照片
- python - Python KeyError 使用随机