フラッターで 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":"パラメーターがありません: ユーザー名"}
リクエストの「本文」がサーバーに認識されていないようです。