我正在尝试第一次使用改装并且缺少简单的逻辑。请帮我解决这个问题。
这是我的用户类
public class User {
private String name, email, password;
public User(){
}
public User(String name, String email, String password){
this.name = name;
this.email = email;
this.password = password;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public void setName(String name) {
this.name = name;
}
public void setEmail(String email) {
this.email = email;
}
public void setPassword(String password) {
this.password = password;
}
}
API接口
public interface MyApiEndpointInterface {
// Request method and URL specified in the annotation
// Callback for the parsed response is the last parameter
@GET("users?email={email}")
Call<User> getUser(@Query("email") String email);
}
这是我获取细节的方式:
public void getUserDetails()
{
String email = inputEmail.getText().toString()
Call<User> call = apiService.getUser(email);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User>call, Response<User> response) {
if(response.body()!=null)
{
Log.d("TAG", "Name: " + response.body().getName());
Log.d("TAG", "Password: " + response.body().getPassword());
}
else
{
Toast.makeText(getApplicationContext(), "User does not exist", Toast.LENGTH_SHORT).show();
Log.d("TAG", "User details does not exist");
}
}
@Override
public void onFailure(Call<User>call, Throwable t) {
Log.e("TAG", t.toString());
}
});
}
现在我的问题是我有web api,它托管在服务器上,它看起来像:
要根据提供的电子邮件获取用户详细信息,我正在尝试使用此功能:
http://www.somesite.com/api/user?email= {电子邮件}
现在如何在api界面中将此url设置为返回null?
答案 0 :(得分:2)
在apiService
中,您应该使用Builder创建一个Retrofit
对象,并使用此对象创建MyApiEndpointInterface
接口的实例。在那里你添加了API的baseUrl。
看起来应该是这样的:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://yourapibaseUrl.com/api/")
.build();
MyApiEndpointInterface apiInterface = retrofit.create(MyApiEndpointInterface.class);
apiInterface
是您将使用Refit调用API的对象,它已经设置了baseUrl。
希望这会有所帮助.-