1

我正在尝试使用一些参数向后端服务器发送 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 一起使用。

这个请求在邮递员中效果很好。

我会很感激你的帮助。问候

4

1 回答 1

0

查看如何修复数据未显示在颤振列表中

我直接使用 http 来获取任何内容。还可以查看https://app.quicktype.io/以快速创建解码器类。要使用它,请在此处复制邮递员的响应,它将在 Dart 中为您生成一个类。

于 2020-08-09T11:49:06.717 回答