после вызова API, используя дио дает 404 флаттер - PullRequest
0 голосов
/ 31 марта 2020

Я звоню API из флаттера, который является типом поста, но он выдает ошибку 404, может выяснить, в чем проблема

class OtpVerifyApi {
  Future otpVerifyAPI(OtpVerifyRequest otpVerifyRequest, String token) async {
    return NetworkCommon.getClient(Constants.apiEndPoint)
        .post("otp",
            data: otpVerifyRequest.toMap(),
            options: new Options(headers: {"Authorization": token}))
        .then((response) {
      return response.data;
    }).catchError((onError) {
      print("onError " + onError.toString());
    });
  }
}

class OtpVerifyRequest {
  String otp;

  toMap() {
    return {"otp": this.otp};
  }
}



verfiyUser(OtpVerifyRequest otpVerifyRequest, String token) async {
    _memoizer.runOnce(() =>
        OtpVerifyApi().otpVerifyAPI(otpVerifyRequest, token).then((reponse) {
          OtpVerifyResponse otpVerifyResponse =
              OtpVerifyResponse.fromJson(reponse);
          print("otpVerifyResponse $otpVerifyResponse");

        }).catchError((error) {
          hideLoader();
          print("otp error: $error");
        }));
  }

Это мои три исходных файла, 1-й - мой клиент, 2-й - мой запрос, 3-й - где я получаю ответ. Помоги мне понять это. Заранее спасибо.

Future<OtpVerifyResponse> verifyUser(
      OtpVerifyRequest otpVerifyRequest, String token) async {
    Map<String, String>  requestHeaders = {
        "Accept": "application/json",
        "Authorization": "Bearer $token",
      };
    return http
        .post(Constants.apiEndPoint + "registration/_verify",
            body: otpVerifyRequest.toMap(), headers: requestHeaders)
        .then((http.Response response) {
      hideLoader();
      final int statusCode = response.statusCode;
      print("statusCode" + statusCode.toString());
      print("response ${json.decode(response.body)}");
      if (statusCode < 200 || statusCode > 400 || json == null) {
        hideLoader();
        throw new Exception("Error while fetching data");
      }
      return OtpVerifyResponse.fromJson(json.decode(response.body));
    });
  }

Я также пробовал этот метод http, но он также не работает, не уверен, что я делаю неправильно

1 Ответ

0 голосов
/ 31 марта 2020
class OtpVerifyApi {
  Future otpVerifyAPI(OtpVerifyRequest otpVerifyRequest, String token) async {
    return NetworkCommon.getClient(Constants.apiEndPoint)
        .post("otp",
            data: otpVerifyRequest.toMap(),
            options: new Options(headers: {"Authorization": "Bearer $token"}))
        .then((response) {
      return response.data;
    }).catchError((onError) {
      print("onError " + onError.toString());
    });
  }
}

Я неверно передал токен авторизации .. Потребовалось время, чтобы выяснить это:)

...