将多个参数发送到Retrofit Interface调用

时间:2018-03-05 15:48:25

标签: android interface retrofit retrofit2

我的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中,但我不确定是否可以在界面中访问它。 提前谢谢!

2 个答案:

答案 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);

希望这会有所帮助