0

フラッターで API にログインしようとしています。メソッドは次のとおりです。

var result = await http.post(
  Uri.https(host, url, queries),
  headers: <String, String>{
    'Content-Type': 'application/json; charset=UTF-8',
  },
  body: jsonEncode(<String, String>{
    'username': myUsername,
    'password': myPassword,
  }),
);

要求の結果、次のように 405 エラーが返されました。

This method requires HTTP POST

エラー状態

どうすれば対処できますか?

編集:

これはうまくいくようです:

Map<String, String> formMap = {
  'username': 'myUsername',
  'password': 'myPassword',
};


http.Response response = await http.post(
  Uri.https(host, url, queries),
  body: jsonEncode(formMap),
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  encoding: Encoding.getByName("utf-8"),
);
  • ステータスコード 200
  • 応答本文 = {"stat":"fail","err":1002,"message":"パラメーターがありません: ユーザー名"}

リクエストの「本文」がサーバーに認識されていないようです。

4

1 に答える 1