gpt4 book ai didi

java - 使用查询参数改造 URL

转载 作者:行者123 更新时间:2023-11-29 19:09:08 25 4
gpt4 key购买 nike

我是第一次尝试使用 retrofit ,但缺少简单的逻辑。请帮我解决这个问题。

这是我的用户类

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接口(interface)

   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

要根据提供的电子邮件获取用户详细信息,我正在尝试使用它:

http://www.somesite.com/api/user?email= {电子邮件}

现在如何在 api 接口(interface)中将此 url 设置为返回 null ?

最佳答案

在您的 apiService 中,您应该使用 Builder 创建一个 Retrofit 对象,并以此创建您的 MyApiEndpointInterface 接口(interface)的实例。在此处添加 API 的 baseUrl。

它看起来应该是这样的:

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://yourapibaseUrl.com/api/")
.build();

MyApiEndpointInterface apiInterface = retrofit.create(MyApiEndpointInterface.class);

apiInterface 是您将使用 Refit 调用 API 的对象,它已经设置了 baseUrl。

希望这有帮助。-

关于java - 使用查询参数改造 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017249/

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