【问题标题】:Getting No Retrofit annotation found. (parameter #3) for a callback未找到改造注释。 (参数#3)回调
【发布时间】:2022-01-03 15:37:25
【问题描述】:

我正在尝试使用定义此接口的改造来发出发布请求:

public interface UploadImageRestClient {

        @POST("uploadimage")
        void postData(@Header("Cookie") String sessionId, @Body JSONObject image,  
    Callback<Response> callback);
        }

这样称呼:

 restClient.postData(MapRecintosFragment.sgaUser.getCookieHeader(), json, new Callback<Response>() {
                @Override
                public void onResponse(Call<Response> call, Response<Response> response) {
                                       
    
                                    }
               @Override
               public void onFailure(Call<Response> call, Throwable t) {
        
        
        }
       });

当它在运行时执行时,restClient.postData 指令失败并出现标题中提到的错误。

但是,老实说,我不知道应该为回调添加什么 Retrofit 注释,这对我来说毫无意义。

我该如何解决这个错误?

【问题讨论】:

    标签: java android retrofit2


    【解决方案1】:

    删除 3# 参数

    @POST("uploadimage")
        public Call<ResponseBody> postData(@Header("Cookie") String sessionId, @Body 
            JSONObject image);
        }
    

    使用

    retrofit.create(UploadImageRestClient.class).postData(MapRecintosFragment.sgaUser.ge 
        tCookieHeader(), json).enqueue(new Callback<ResponseBody>{
           
            @Override
            public void onResponse(Call<Response> call, Response<ResponseBody> 
                response){}
            @Override
            public void onFailure(Call<Response> call, Throwable t){}
        })
    

    【讨论】:

      【解决方案2】:

      你在下面犯了错误

          @POST("uploadimage")
          void postData(@Header("Cookie") String sessionId, @Body JSONObject image,  
      Callback<Response> callback);
          }
      

      应该像下面这样

          @POST("uploadimage")
          Call<Response> postData(@Header("Cookie") String sessionId, @Body JSONObject image);
          
      

      希望你明白... :)

      【讨论】:

      • @pratikvekarija,还是同样的错误。
      • 从 postData 方法(最后一个参数)中移除这个“Callback 回调”,我不认为它是必需的
      • @user2638180 检查已编辑的答案。
      • @user2638180 嗨,我的回答正确吗?然后请纠正。 :)
      猜你喜欢
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 2017-08-26
      • 2022-07-31
      • 1970-01-01
      相关资源
      最近更新 更多