1

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 では機能しません。

このリクエストは郵便配達員でうまく機能します。

よろしくお願いします。よろしく

4

1 に答える 1