我提出了一个请求:
public interface CheckUserInDBRequest {
@GET("api/checkUserInDB.php")
Call<ResponseBody> searchForUser(
@Query("login") String login,
@Query("pass") String pass
);
}根据数据库中是否有用户,在json中我得到的答案是真假的。
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的输出。我不知道如何得到一个正常的答案。
发布于 2018-05-18 20:46:22
首先,创建一个表示JSON对象的类。
public class UserResult {
public boolean isSet;
}以这种方式重构Retrofit调用
@GET("api/checkUserInDB.php")
Call<UserResult> searchForUser(
@Query("login") String login,
@Query("pass") String pass
);然后在您的代码中:
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();
}
});https://stackoverflow.com/questions/50418762
复制相似问题