2017-01-29 7 views
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 

ответ