#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.
});