GET リクエストをバックエンド サーバーにいくつかのパラメータとともに送信しようとしていますが、次のエラーが表示されます。
DioError [DioErrorType.RESPONSE]: Http status error [500]
私が送信しているパラメーターには、ブール値と double も含まれています。このリクエストを正常に行うにはどうすればよいですか。SOで非常に多くの答えを試しましたが、うまくいきませんでした。以下は私のコードスニペットです
Future<Converter> currencyConverter() async {
String convertURL = baseURL + 'convert/currency/';
String auth = await localpref.getString('access');
// FormData formData = new FormData.fromMap({
// "switch": _switch,
// "s_currency": senderCurrencyVal,
// "r_currency": recieverCurrencyVal,
// "amount": amount
// });
Map<String, dynamic> payload = {
"switch": _switch, //boool
"s_currency": senderCurrencyVal, // string
"r_currency": recieverCurrencyVal, // string
"amount": amount //double
};
try {
var res = await dio.get(convertURL,
//data: formData,
queryParameters: payload,
options: Options(
followRedirects: false,
validateStatus: (status) {
return status < 500;
},
headers: {
"accept": "*/*",
"Authorization": "Bearer $auth",
"Content-Type": "application/x-www-form-urlencoded"
}));
if (res.statusCode >= 200 && res.statusCode <= 250) {
print("Transfer Succeed");
var respBody = res.data;
Converter converter = converterFromJson(res.data);
print(converter.result);
return converter;
} else {
print(res);
print("Else not successful");
}
} catch (e) {
print(e);
}
}
注: 私はバックエンドを担当しておらず、Django で開発されたものであることがわかりました。また、dio.get と dio.request の両方を試しましたが、同じ結果が得られました。Dio を使用している場合、formdata は GET では機能しません。
このリクエストは郵便配達員でうまく機能します。
よろしくお願いします。よろしく