0
Я пытаюсь построить интерфейс для нескольких дисков. т.е. http://server.com/firstQuery http://server.com/secondQueryRxJava 2 Дооснащение и динамические URL-адреса и аннотация @url
Это моя Модифицированной интерфейс ого
public interface RequestInterfaceRx<T> {
@GET("/")
Observable<CurrencyOnServerConstruct> register();
Call<ResponseBody> setUrl(@Url String url);
}
И это код я использую
private void setupQuery(){
RequestInterfaceRx requestInterface = new Retrofit.Builder()
.baseUrl("http://server.com/v3/")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build().create(RequestInterfaceRx.class);
requestInterface.setUrl("m");
requestInterface.register()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleResponse,this::handleError);
}
Это действительно не работает, как ожидалось :)
Caused by: java.lang.IllegalArgumentException: HTTP method annotation is required (e.g., @GET, @POST, etc.).
for method RequestInterfaceRx.setUrl
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:720)
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:711)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:174)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
at java.lang.reflect.Proxy.invoke(Proxy.java:393)
at $Proxy0.setUrl(Unknown Source)
at bytesand.myapplicationaqueryserverrx.MainActivity.setupQuery(MainActivity.java:29)
at bytesand.myapplicationaqueryserverrx.MainActivity.onCreate(MainActivity.java:21)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
... 9 more