带有身体参数的Http发布请求不起作用

时间:2019-05-22 14:26:18

标签: networking flutter

最近,我开始在Flutter中开发一个小型应用程序。我在提出网络请求时遇到问题。我已经尝试过用邮递员拨打电话,并且可以正常工作。但是在Flutter中,我从来没有设法使它起作用,我花了大约3个小时试图了解我做错了什么。

任何帮助将不胜感激。

 @override
  Future<String> login(common.LoginParameters loginParameters) async {
    try {

      final String loginURL = "https://test-inszicht.acceptatie.maxdoro.eu/api/login";

      LoginModel loginResult;

      Map bodyParams = { "inlognaam" : loginParameters.username , "wachtwoord" : loginParameters.password, "code" : loginParameters.smsCode};

      //await API call
      http.Response httpResponse = await http.put( loginURL, body: json.encode(bodyParams));

      if (httpResponse.statusCode == 200) {
        // If server returns an OK response, parse the JSON
        loginResult=  LoginModel.fromJson(json.decode(httpResponse.body));
      } else {
        // If that response was not OK, throw an error.
        throw Exception('Failed to load post');
      }

      // if logged in get token, Otherwise return error
      if (loginResult.ingelogd) {
        // read the token

        saveToken(loginResult.response);
        return "Ingelogd";
      } else {
        return loginResult.error;
      }
    }
    on Exception catch(error) {
      print("Todor " + error.toString());
      return "Controleer uw internet verbinding en probeer opnieuw";
    }
  }

在邮递员中,如果我选择带有正文参数的邮寄请求 inlognaam:someUsername wachtwoord:somePassword 代码:someCode

然后我会收到成功的回复

1 个答案:

答案 0 :(得分:0)

我通过以下方式传递参数,也许可以为您工作:

var response = await http.post(
url,
headers:{ "Accept": "application/json" } ,
body: { "state": 1}, //key value
encoding: Encoding.getByName("utf-8")
);

另一件事,您说在邮递员中发出过帐请求,但在您的代码中有发出请求,请验证什么是正确的方法