флаттер x- www-form-urlencoded POST-запрос - PullRequest
0 голосов
/ 06 апреля 2020

Я сейчас пытаюсь отправить два ключевых значения на сервер и получить ответ. Мой код (main.dart):

Future<Responsem> createResponsem() async {

 Map<String, dynamic> jsonMap = {
      "email":"user",
      "pass":"1234"
    };
  final http.Response response = await http.post(url,
      body: json.encode(jsonMap),
      headers: {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
      },
      encoding: Encoding.getByName("utf-8"));

  print(response.statusCode);
     return Responsem.fromJson(json.decode(response.body));
}
createResponsem();

Код сервера:

<?php
$email = filter_input(INPUT_POST,"email");
$pass = filter_input(INPUT_POST,"pass");

if(isset($email) && isset($pass)){
  if($email == "user" && $pass = "1234"){
    echo "true";
    }else{
        echo "false:wrongvalues";
    }
}else{
    echo "false:novalue";
}

для ответа Файл Responsem.dart:

class Responsem {
 String completed;

  Responsem({this.completed});

  Responsem.fromJson(Map<String, dynamic> json) {
    completed = json['completed'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['completed'] = this.completed;
    return data;
  }
}

Я думаю, что мое тело не правильно, потому что единственное значение, которое я получаю со стороны сервера, это "false: novalue", а statusCode - 200. Я новичок, не могли бы вы помочь, пожалуйста? Спасибо ...

1 Ответ

0 голосов
/ 06 апреля 2020

Измените:

final http.Response response = await http.post(url,
    body: json.encode(jsonMap),

на

final http.Response response = await http.post(url,
    body: formMap,

и создайте formMap как:

var formMap = <String, String>{
    'email': 'user',
    'pass': '1234',
  };
...