当前位置: 首页 > 知识库问答 >
问题:

如何从响应中检索数据?-改装2

周云
2023-03-14

服务器的响应如下所示:

{
    success: true,
    token: "someRandomToken"
}

如何从响应中检索标记

public void loginUser(final Context context, String url, String username, String passowrd, loginJson loginjson) {

        final MediaType JSON
                = MediaType.parse("application/json; charset=utf-8");

        loginjson.setUsername(username);
        loginjson.setPassword(passowrd);

        Gson gson = new Gson();

        String jsonFromForm = gson.toJson(loginjson);

        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(JSON, jsonFromForm);
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .addHeader("content-type", "application/json; charset=utf-8")
                .build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                System.out.println("Failure!!");
            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                if(response.isSuccessful()) {
                    if (context != null) {
                        new Handler(Looper.getMainLooper()).post(new Runnable() {

                            @Override
                            public void run() {
                                if(response.body() != null){

                                }
                            }
                        });
                    }
//
                } else {
                    if (context != null) {
                        new Handler(Looper.getMainLooper()).post(new Runnable() {

                            @Override
                            public void run() {
                                Toast.makeText(context, context.getResources().getString(R.string.failed_to_login),
                                        Toast.LENGTH_SHORT).show();
                            }
                        });
                    }

                }
            }

        });


    }

实现@Piyush Patel后,回答:我将调用响应分别更改为retrofit2.call retrofit2.reponse 。但是我的enqueue中的回调提示错误,要求我实现其onresponseonfailure方法

新手问题:我是否使用retrofit1方法?!!

共有1个答案

沙岳
2023-03-14

下面是一个片段,展示了如何使用GSON实现它

public class JsonResponse {

    public String success;
    public String token;

    public JsonResponse(String success, String token) {
        this.success = success;
        this.token = token;
    }
}

Call<JsonResponse> call = api.checkLevel(1);
        call.enqueue(new Callback<JsonResponse>() {
            @Override
            public void onResponse(Call<JsonResponse> call, Response<JsonResponse> response) {
                if (response.isSuccessful()) {
                    JsonResponse jsonResponse=response.body();
                }
            }

            @Override
            public void onFailure(Call<JsonResponse> call, Throwable t) {
            }
        });
 类似资料:
  • 我使用的是改装版2.0b2。收到响应后,我尝试通过以下方式从响应中获取InputStream: 但是这个应用程序一直在扔: 尽管回复正确。我到底做错了什么?

  • 我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:

  • {“type”:“record”、“name”:“twitter_schema”、“namespace”:“com.miguno.avro”、“fields”:[{“name”:“username”、“type”:“string”、“doc”:“Twitter.com上的用户帐户名称”}、{“name”:“tweet”、“type”:“string”、“doc”:“用户的Twitter消息内容”}

  • 所以我根据YouTube上的教程创建了一个房间数据库。我有两个栏day and likes,每个栏都有int.目前,我已经用三行数据手动填充了数据库。 下面是手动填充数据库的代码: 在我的Dao类中,我当前有Insert、Update、deleteAll和getall...方法。这里是道: } 现在,我要从Room数据库中检索基于当天的数据。所以我想要第6天的likes数,它是1。我想检索数据并将

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,

  • 目前我正在做一个项目,我需要从一个表中提取最新的数据用于报告目的。下面是示例表结构:- 我使用下面的SQL查询并能够提取数据。 但问题是真正的表非常大。大约有85k行,这个查询需要一些时间。还有其他更好的方法吗。我正在使用Oracle 11g R2。请建议 这是SQLfiddle链接http://sqlfiddle.com/#!4/b3fe1/8