как отправить параметры в будущем классе

#api #http #parameters #dart #flutter

#API #http #параметры #dart #флаттер

Вопрос:

я хочу использовать веб-сервис, для которого требуются заголовки, тело и параметры в будущем классе, но проблема в том, что он показывает ошибку «именованные параметры не определены’

 Future<http.Response> postLogin(String login, String password, String jwt) async{

  final response = await http.post(Uri.encodeFull('$baseurl/mobile/login'),

    headers: {
      HttpHeaders.acceptHeader: 'application/json ; charset=utf-8',
      HttpHeaders.contentTypeHeader:'application/x-www-form-urlencoded',
      HttpHeaders.authorizationHeader :'Bearer $jwt',
    },

    body: bodyLoginToJson(login, password, token),
    parameters: {
    token, login
    }
  );
  

может кто-нибудь помочь, пожалуйста

Комментарии:

1. http.post имеет именованные параметры headers , body и encoding . Нет параметра с именем « parameters «. Возможно , вы намерены передать его как часть body Map ? Трудно сказать, не зная дополнительной информации о том, чего именно ожидает веб-служба.

2. когда я тестирую веб-сервис в postman, я заполняю параметры, и это работает, и это не работает, когда я помещаю их в body

Ответ №1:

Как упоминалось @jamesdlin, parameters не является именованным параметром класса http. Стандартный способ публикации значений с использованием dart / flutter — это сопоставление с body параметром. Не предполагайте, что терминология, используемая в postman, будет такой же в dart.

     Map<String, String> _headers = {
      "Accept":"application/json"
    };
    var response = await http.post(LOGIN_URL, headers: _headers, body: {
      "username": username,
      "password": password,
      // whatever other key values you want to post.
    }).then((dynamic res) {
      // ... Do something with the result.
    });