响应不是来自使用Retrofit2的服务器

jyothi gen:

嗨,在下面的代码中,我有一个get方法,该方法来自get方法,使用翻新库来解析json响应。

对于下面的质询类,它通过pojo类解析json响应,但是响应不是来自server。

谁能帮助解决这个问题吗?

{
        success: true,
        result: {
                token: TOKENSTRING,    // Challenge token to be used for login.
                serverTime: TIMESTAMP, // Current Server time
                expireTime: TIMESTAMP  // Time when token expires
        }
}

GetChallenge.java:

private void getchallenge() {


        //Here a logging interceptor is created
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);

        //The logging interceptor will be added to the http client
        OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
        httpClient.addInterceptor(logging);

        final GetNoticeDataService service = RetrofitInstance.getRetrofitInstance().create(GetNoticeDataService.class);

        /** Call the method with parameter in the interface to get the notice data*/
        Call<ManageChallenge> call = service.getChallengeList();

        /**Log the URL called*/
        Log.wtf("URL Called", call.request().url() + "");

        call.enqueue(new Callback<ManageChallenge>() {
            @Override
            public void onResponse(Call<ManageChallenge> call, Response<ManageChallenge> response) {
                if(response.isSuccessful() ) {

                    ManageChallenge challenge=response.body();

                   // String response1=response.body().toString();
                    String success=challenge.getSuccess().toString();

                    if(success.equals("true")){
                        String result= challenge.getResult().toString();

                        try {
                            JSONObject jsonObject =new JSONObject(result);

                            String token = jsonObject.getString("token");
                            Log.i("token", "token" + token);
                            String serverTime =jsonObject.getString("serverTime");
                            Log.i("serverTime", "serverTime" + serverTime);
                            String expireTime =jsonObject.getString("expireTime");
                            Log.i("expireTime", "expireTime" + expireTime);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    Log.i("REsult", "Get submitted to API." + challenge);

                }
            }

            @Override
            public void onFailure(Call<ManageChallenge> call, Throwable t) {
                Toast.makeText(LoginActivity.this, "Something went wrong...Error message: " + t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
}

RetrofitInstance.java:

public class RetrofitInstance {

    private static Retrofit retrofit;
    private static final String BASE_URL = "http://XXXXXXXXXXXX/";

    /**
     * Create an instance of Retrofit object
     * */
    public static Retrofit getRetrofitInstance() {
        if (retrofit == null) {
            retrofit = new retrofit2.Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

GetNoticeDataService.java:

 public interface GetNoticeDataService {

        @Headers("Content-Type: application/json")
        @GET("webservice.php?operation=getchallenge&username=admin")
        Call<ManageChallenge> getChallengeList();
    }

ManageChallenge.java:

public class ManageChallenge {

    @SerializedName("success")
    private String success;

    @SerializedName("result")
    private List <getChallengeList> result;

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }

    public List<getChallengeList> getResult() {
        return result;
    }

    public void setResult(List<getChallengeList> result) {
        this.result = result;
    }
}

getChallengeList.java:

public class getChallengeList {

        @SerializedName("token")
        @Expose
        private String token;
        @SerializedName("serverTime")
        @Expose
        private String serverTime;
        @SerializedName("expireTime")
        @Expose
        private String expireTime;


        public String getToken() {
            return token;
        }

        public void setToken(String token) {
            this.token = token;
        }

        public String getServerTime() {
            return serverTime;
        }

        public void setServerTime(String serverTime) {
            this.serverTime = serverTime;
        }

        public String getExpireTime() {
            return expireTime;
        }

        public void setExpireTime(String expireTime) {
            this.expireTime = expireTime;
        }
    public getChallengeList(String tokens, String expireTimes, String serverTimes){
        token = tokens;
        expireTime = expireTimes;
        serverTime = serverTimes;
    }

}

邮递员回应:

{"success":true,"result":{"token":"5e2ab99eb318f","serverTime":1579858334,"expireTime":1579858634}}
杜兰加:

根据您的回应,这里没有问题清单

@SerializedName("result")
private List<GetChallengeList> result;

像这样改变它

public class ManageChallenge {

    @SerializedName("success")
    private String success;

    @SerializedName("result")
    private GetChallengeList result;

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }

    public GetChallengeList getResult() {
        return result;
    }

    public void setResult(GetChallengeList result) {
        this.result = result;
    }
}

GetChallengeList类

public class GetChallengeList {

    @SerializedName("token")
    @Expose
    private String token;
    @SerializedName("serverTime")
    @Expose
    private String serverTime;
    @SerializedName("expireTime")
    @Expose
    private String expireTime;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getServerTime() {
        return serverTime;
    }

    public void setServerTime(String serverTime) {
        this.serverTime = serverTime;
    }

    public String getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    public GetChallengeList(String tokens, String expireTimes, String serverTimes){
        token = tokens;
        expireTime = expireTimes;
        serverTime = serverTimes;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用retrofit2将json数据发布到android中的服务器?

服务器无法使用 Retrofit2 读取 HTTPS POST 请求参数

在Retrofit2上,如果来自服务器的json是这样的,我该如何设置json类?

Retrofit2:如果服务器响应正常并且 GSON 没有报告任何解析问题,为什么对象为 null?

使用来自服务器的 ajax 响应填充 div

来自服务器的错误响应 - 似乎我的 FrontEnd 收到的是 Options 响应而不是 Post

Docker:来自服务器的空响应

使用Retrofit2和RxAndroid从Spring WebFlux获得响应

使用Retrofit2在响应主体上获取空数据?

使用Retrofit2 And Rx从api获取响应

如何使用Retrofit2解析错误响应?

在Android中使用Retrofit时为什么不显示来自服务器的帖子

Nuxt:使用 NuxtJS 服务器中间件修改来自代理服务器的响应

在 kotlin 中使用 Retrofit2 恢复我在另一个类中的服务响应

如何使用Retrofit2解析对象而不是数组

使用铁路由器的流星服务器 api 返回 HTML 而不是响应

使用ajax发送数据,来自服务器端PHP的空白响应

如何处理来自慢速服务器的响应

来自服务器和核心数据的NSOrderedSet响应

来自服务器响应的Flutter返回数组

不能接收来自服务器的响应

来自服务器的部分 JSON 响应返回 null:Android

来自服务器的 angularjs 响应传递所有 if 语句

BigQuery预览:来自服务器的未知错误响应

来自服务器的 POST 和响应 null 的问题(Kotlin)

来自服务器的日志记录响应不起作用

来自服务器尾端GET请求的错误响应

骨干-处理来自服务器的空响应

来自带有Rails的SMTP服务器的响应