java - 带参数改造 GET 请求

标签 java android rest retrofit2

我使用 Retrofit GET 请求调用 api。此 GET 请求需要一个参数。当我使用 POSTMAN 进行测试时,API 工作得很好,但是当我尝试使用下面的 API 调用时,它会返回

Object reference not set to an instance of an object.

@GET("/api/account/*******")
Call<ResetPassword> requestPasswordResetToken(@Query("phoneNumber") String phoneNumber);

以及我如何在 Activity 中提出该请求的代码。

public void requestPasswordResetToken(String phoneNumber) {

    Retrofit retrofit = RetrofitClient.getClient("");
    APIService mAPIService = retrofit.create(APIService.class);

    final ProgressDialog loading = ProgressDialog.show(this, "Please Wait", "Loading your information...", false, false);
    loading.setCancelable(true);
    loading.show();

    mAPIService.requestPasswordResetToken(phoneNumber).enqueue(new Callback<ResetPassword>() {
        @Override
        public void onResponse(Response<ResetPassword> response, Retrofit retrofit) {
            if(response.isSuccess()) {
                String loginSuccess = response.body().getSuccess();
                String message = response.body().getMessage();
                if (loginSuccess.equals("true")) {
                    loading.dismiss();
                    showSnackMessage(message);

                }else {
                    Log.e("loginError", message);
                    Toast.makeText(RequestPasswordResetActivity.this, message, Toast.LENGTH_LONG).show();
                    loading.dismiss();
                }
            }
        }

        @Override
        public void onFailure(Throwable throwable) {
            Log.e("ResetPasswordError", throwable.getMessage());
            Toast.makeText(RequestPasswordResetActivity.this, "Unable to Login, Please Try Again", Toast.LENGTH_LONG).show();
            loading.dismiss();
        }
    });
}

API 期望的屏幕截图。字段名称正确。

This is what the API expects.

最佳答案

你的代码看起来不错。你检查一下你正在处理的api的结果格式吗?并且 ResetPassword 类属性(变量名称和类型)必须与 api 的响应相同。 (注意大小写字母)。

并尝试此格式请求

  @GET("methodName/{PARAMETER}")
Call<Object> getData(
        @Path("telephoneNumber") String telephoneNumber
);

关于java - 带参数改造 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48745066/

相关文章:

android - WRAP_CONTENT 不是不包裹 android 中的 ListView 宽度

rest - REST API 中的操作

json - 使用自定义转换器时在 Grails 中处理 PUT/POST 请求

java - 为二十一点创建人工智能

Java - Runtime.getRuntime().exec() 这是怎么回事?

java - 正则表达式复制第二个、第三个和第四个单词

java - 将文件复制到 Assets 文件夹

android - 将 RadioButtons 从膨胀的 ListView 布局添加到 RadioGroup

java - Tomcat + Mysql - 无法找到 java :comp

REST API v2 与 v3