首页 > 解决方案 > 如何使用从共享首选项 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']我一直为空时,有人可以帮助我吗?

标签: flutterdartflutter-layoutflutter-dependencies

解决方案


您使用的网址格式错误,请尝试以下操作:

final response = await http.get(
        "http://api.ergagro.com:112/GenerateFarmersEop?farmerBvn=${widget.result}&dcOid=${widget.dc_result}&agentName=${userData['UserName']}",
        headers: _setHeaders());

推荐阅读