找不到改造注释

时间:2016-03-30 10:59:31

标签: java android retrofit gson

我是Android的初学者。所以今天我只是尝试使用Retrofit来调用Restfull webservice。为了实现这一点,我将遵循以下步骤。

第1步:

添加以下Gradle。

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.google.code.gson:gson:2.6.1'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'

第2步

使接口处理如下所示的请求终点。

public interface IgetUserEndpoint {
@GET("id/{id}")
Call<String> getUser(@Path("id") String id, Callback<String> response);

}

步骤:3

在My MainActivity中编写以下代码以调用Web服务。

 public static final String BASE_URL = "http://XXX.XXX.X.XXX/MyProject/test/restapi/api/users/login/";
    retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    final IgetUserEndpoint userData=retrofit.create(IgetUserEndpoint.class);

步骤:4

比我按下一个按钮来调用网络服务,同时点击下面这样。

 btnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            userData.getUser(edtUserId.getText().toString(), new Callback<String>() {
                @Override
                public void onResponse(Call<String> call, Response<String> response) {
                    Log.e("Tag", "Response ::"+call);

                }

                @Override
                public void onFailure(Call<String> call, Throwable t) {
                    Log.e("Tag", "Response ::"+t.getMessage());
                }
            });



        }
    });

问题

但是当我点击这个按钮而不是应用程序得到崩溃时。我不知道我的代码中的实际错误。我在我的LogCat中遇到了错误。

  Process: com.hyperlink.retrofitwithrestfullwebservice, PID: 18924
    java.lang.IllegalArgumentException: No Retrofit annotation found. (parameter #2)
    for method IgetUserEndpoint.getUser
    at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:667)
    at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:658)
    at retrofit2.ServiceMethod$Builder.parameterError(ServiceMethod.java:676)
    at retrofit2.ServiceMethod$Builder.parseParameter(ServiceMethod.java:343)
    at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:201)
    at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
    at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
    at java.lang.reflect.Proxy.invoke(Proxy.java:397)
    at $Proxy0.getUser(Unknown Source)
    at com.hyperlink.retrofitwithrestfullwebservice.MainActivity$1.onClick(MainActivity.java:46)

我希望你对我的问题很清楚。 我认为我的问题太简单了,但我知道问题是什么,所以如果有任何人有任何想法,请帮助我。

0 个答案:

没有答案
相关问题