如何使用从共享首选项 json 文件中获取的数据返回值作为参数
How can I use the returned value of data I got from my shared preference json file as a parameter
如何将其用作我的 url 参数
用户数据['UserName']
我的共享首选项文件中有 json 数据。所以我试图获取用户名
登录用户,因为我想用作端点的参数。
我可以在控制台上打印用户名,但当我尝试添加它时
在 link 上,我得到的 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']);
}
这是我想在下面的获取请求 link 中使用它的地方:
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'] 我总是收到空值,有人能帮帮我吗?
如果_getUserInfo
没有返回任何东西那么为什么要创建一个单独的方法,试试下面的代码。它应该可以工作。
Future<void> get_farmer_eop() async {
SharedPreferences localStorage = await SharedPreferences.getInstance();
var userJson = localStorage.getString('loginRes');
user = json.decode(userJson);
final response = await http.get(
'http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${user['UserName']}',
headers: _setHeaders());
您使用的 url 格式有误,试试这个:
final response = await http.get(
"http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${userData['UserName']}",
headers: _setHeaders());
如何将其用作我的 url 参数
用户数据['UserName']
我的共享首选项文件中有 json 数据。所以我试图获取用户名 登录用户,因为我想用作端点的参数。
我可以在控制台上打印用户名,但当我尝试添加它时 在 link 上,我得到的 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']);
}
这是我想在下面的获取请求 link 中使用它的地方:
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'] 我总是收到空值,有人能帮帮我吗?
如果_getUserInfo
没有返回任何东西那么为什么要创建一个单独的方法,试试下面的代码。它应该可以工作。
Future<void> get_farmer_eop() async {
SharedPreferences localStorage = await SharedPreferences.getInstance();
var userJson = localStorage.getString('loginRes');
user = json.decode(userJson);
final response = await http.get(
'http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${user['UserName']}',
headers: _setHeaders());
您使用的 url 格式有误,试试这个:
final response = await http.get(
"http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${userData['UserName']}",
headers: _setHeaders());