我的node.js服务器上有一个方法'makeFriend(email)',它使用两个电子邮件ID将一个用户添加为另一个用户,如下所示 https://fitnessrace.herokuapp.com/users/ {emailOfUser} / make_friend / {emailofFriend}
邮递员的回复是The Postman successful response
我也想从我的Android应用程序中做同样的事情,我将界面定义为
public interface RetrofitInterface
{
//for adding a friend with email
@PUT("users/{emailOfUser}/make_friend/{emailofFriend}")
Call<Response> makeFriend(@Path("emailofFriend") String email);
}
正如您所看到的,我只能通过改装调用传递一个参数,如下所示
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
Call<Response> call = retrofitInterface.makeFriend("emailofFriend");
现在我的问题是如何将'emailOfUser'传递给界面,因为我只能通过改装调用发送'emailofFriend'字符串? 我也将我的电子邮件保存在SharedPreference中,但我不确定是否可以在界面中访问它。 提前谢谢!
答案 0 :(得分:1)
您应该在方法
中添加一个参数public interface RetrofitInterface
{
//for adding a friend with email
@PUT("users/{emailOfUser}/make_friend/{emailofFriend}")
Call<Response> makeFriend(@Path("emailOfUser") String user,@Path("emailofFriend") String email);
}
并从此处传递参数
RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
Call<Response> call = retrofitInterface.makeFriend("User","emailofFriend");
答案 1 :(得分:0)
在您的界面中,您的方法应该是
@PUT("users/{emailOfUser}/make_friend/{emailofFriend}")
Call<Response> makeFriend(@Path("emailofUser") String email, @Path("emailOfFriend") String email_friend);
在您的通话中,它将变为如下
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
Call<Response> call = retrofitInterface.makeFriend(USER_EMAIL_STRING, FRIEND_EMAIL_STRING);
希望这会有所帮助