ClientException,并且我无法打印返回的值(请求正文)

问题描述 投票:1回答:1

好吧,我在这里迷失了方向,在我的flutter应用程序中,我正在使用此功能执行发布请求:

 Future<Map> postRequest(String serviceName, Map<String, dynamic> data) async {
    var responseBody = json.decode('{"data": "", "status": "NOK"}');
    try {
      http.Response response = await http.post(
        _urlBase + '$_serverApi$serviceName',
        body: jsonEncode(data),
      );
      if (response.statusCode == 200) {
        responseBody = jsonDecode(response.body);
        //
        // If we receive a new token, let's save it
        //
        if (responseBody["status"] == "TOKEN") {
          await _setMobileToken(responseBody["data"]);

          // TODO: rerun the Post request
        }
      }
    } catch (e) {
      // An error was received
      throw new Exception("POST ERROR");
    }
    return responseBody;
  }

问题是:

  1. 我得到ClientException(并非每次都)
  2. 在另一个类中,我将此函数的结果存储在一个变量中,应该在我打印它时显示一个Future<Map<dynamic, dynamic>>::>

    I/flutter ( 9001): Instance of 'Future<Map<dynamic, dynamic>>'

  3. 但是当我直接运行相同的发布请求(不使用函数)时,它起作用了,并且显示了我正在等待的消息。

注意:在两种情况下(无论是否起作用),在服务器端都是同一件事。

这是我使用过帐请求的功能:

void _confirm() {
    if (_formKey.currentState.saveAndValidate()) {
      print(_formKey.currentState.value);
      var v = auth.postRequest("se_connecter", _formKey.currentState.value);
      print(v);
    } else {
      print(_formKey.currentState.value);
      print("validation failed");
    }
  }
<< >
http flutter http-headers http-post
1个回答
0
投票

var v = await auth.postRequest('se_connecter', _formKey.currentState.value);

© www.soinside.com 2019 - 2024. All rights reserved.