gpt4 book ai didi

java - 来自改造者的回复

转载 作者:行者123 更新时间:2023-12-02 02:08:17 24 4
gpt4 key购买 nike

我正在发出 GET 请求:

public interface CheckUserInDBRequest {
@GET("api/checkUserInDB.php")
Call<ResponseBody> searchForUser(
@Query("login") String login,
@Query("pass") String pass
);
}

我得到的答案是正确的 || json中为false,根据数据库中是否有用户来判断。

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的输出。我不明白如何得到正常的答案。

最佳答案

首先,创建一个代表您的 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();
}
});

关于java - 来自改造者的回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com