使用动态URL改进HTTP Get

时间:2014-06-16 12:27:00

标签: android annotations http-get retrofit

我的界面就像这样

@Headers("Content-Type: application/json")
@GET("/api/session/{id}")
void getSession(
         @Path("id") String id, Callback<JsonObject> callback
);

但我不断得到,No retrofit annotation found.当搜索到这个错误的原因时,最常见的答案是该请求期待 @Body 。但我不想让身体成为 url 的一部分。

我得到的例外

java.lang.IllegalArgumentException: AuthApi.getSession: No Retrofit annotation found.
(Parameter#1)
at retrofit.RestMethodInfo.methodError(RestMethodInfo.java:123)
at retrofit.RestMethodInfo.parameterError(RestMethodInfo.java:127)
at retrofit.RestMethodInfo.parseParameters(RestMethodInfo.java:450)
at retrofit.RestMethodInfo.init(RestMethodInfo.java:134)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:294)
at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)
at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at retrofit.Platform$Android$2$1.run(Platform.java:142)
at java.lang.Thread.run(Thread.java:841)
END ERROR

1 个答案:

答案 0 :(得分:4)

我使用SimpleXML Converter与Retrofit存在同样的问题。

问题是重要的,我有:

import org.simpleframework.xml.Path;

而不是:

import retrofit.http.Path;