我正在尝试使用一些参数向后端服务器发送 GET 请求,但我收到了错误:
DioError [DioErrorType.RESPONSE]: Http status error [500]
我发送的参数也包含一个布尔值和一个双精度值。我怎样才能成功提出这个请求。我在 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 一起使用。
这个请求在邮递员中效果很好。
我会很感激你的帮助。问候