首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Retrofit的答复

Retrofit的答复
EN

Stack Overflow用户
提问于 2018-05-18 20:22:51
回答 1查看 38关注 0票数 0

我提出了一个请求:

代码语言:javascript
复制
public interface CheckUserInDBRequest {
@GET("api/checkUserInDB.php")
Call<ResponseBody> searchForUser(
        @Query("login") String login,
        @Query("pass") String pass
);
}

根据数据库中是否有用户,在json中我得到的答案是真假的。

代码语言:javascript
复制
Retrofit.Builder builder = new Retrofit.Builder().baseUrl("https://kurusa.zhecky.net/").addConverterFactory(GsonConverterFactory.create());

Retrofit retrofit = builder.build();

CheckUserInDBRequest client = retrofit.create(CheckUserInDBRequest.class);
Call<ResponseBody> call = client.searchForUser (
        UserLogin.getText().toString(),
        UserPass.getText().toString()
);

call.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) {

        Toast.makeText(MainActivity.this, response.body().toString(), Toast.LENGTH_LONG).show();
    }

    @Override
    public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) {

        Toast.makeText(MainActivity.this, "no ", Toast.LENGTH_SHORT).show();
    }
});

这里只是okHttp3的输出。我不知道如何得到一个正常的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-18 20:46:22

首先,创建一个表示JSON对象的类。

代码语言:javascript
复制
public class UserResult {
    public boolean isSet;
}

以这种方式重构Retrofit调用

代码语言:javascript
复制
@GET("api/checkUserInDB.php")
Call<UserResult> searchForUser(
        @Query("login") String login,
        @Query("pass") String pass
);

然后在您的代码中:

代码语言:javascript
复制
call.enqueue(new Callback<UserResult>() {
    @Override
    public void onResponse(@NonNull Call<UserResult> call, @NonNull Response<UserResult> response) {
        if (response.isSuccesfull()) {
            UserResult result = response.body();
            //use the value result.isSet where you need it
        } else {
            //something is broken
        }
    }

    @Override
    public void onFailure(@NonNull Call<UserResult> call, @NonNull Throwable t) {

        Toast.makeText(MainActivity.this, "no ", Toast.LENGTH_SHORT).show();
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50418762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档