改造 - 澄清如何用Retrofit写作

时间:2016-12-21 05:03:16

标签: java android api retrofit retrofit2

API接口

public interface YourUsersApi {
   @GET("/name/{name}")
   public void getName(@Path("name") String user, Callback<pojo> response);

    @GET("/gender/{gender}")
   public void getName(@Path("gender") String user, Callback<pojo> response);
}

MainActivity

RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("https://yourserveraddress.com").build();
YourUsersApi yourUsersApi = restAdapter.create(YourUsersApi.class);

如果我想访问“https://yourserveraddress.com/users/matthew”,我会将此代码添加到MainActivity中:

            git.getPlaces(KEY, new Callback<pojo>() {
                @Override
                public void success(pojo pojo, Response response) {
                    Log.d("test1", "success");
                }

                @Override
                public void failure(RetrofitError error) {
                    Log.d("test1", error.toString());
                }
            });

但出现了两个问题:

  1. 如果我想访问“https://yourserveraddress.com/users/matthew/gender/male”,我该怎么做?我需要将interface methods连接在一起还是某种连接?

  2. 是否有一种更有效的方式来编写interface methods?我觉得为每个人创建一个anonymous class是低效的。

1 个答案:

答案 0 :(得分:0)

我们可以通过多种方式进行改造。如果您不想使用匿名类,那么您也可以按照以下代码。

API接口

@GET("/name/{name}")
public Pojo GetName (@Path ("name") String user);

final Pojo pojo = git.getPlaces(KEY);

为此,您可以通过此链接了解更多信息:https://medium.com/@shelajev/how-to-make-http-calls-on-android-with-retrofit-2-cfc4a67c6254#.llvydsa8a