2016-02-20 2 views
0

, когда я вызываю метод моего inteface getRepo, он показывает ошибку. Методы обслуживания не могут вернуть void для метода Github.getRepo, когда я запускаю и проверяю отладочную ошибку в interfac call wher i make метод getRepoне может использовать retofit 2.0 Beta в android

my mainActivity mtehod to call the api is 
 

 
Github api = GitHubService.getService(); 
 
     api.getRepo("basil2style", new Callback<Repository>() { 
 
      @Override 
 
      public void onResponse(Call<Repository> call, Response<Repository> response) { 
 

 
      } 
 

 
      @Override 
 
      public void onFailure(Call<Repository> call, Throwable t) { 
 

 
      } 
 
     }); 
 

 

 
And my model class is 
 
    
 
    package functionapps.retrofitdemo.AsyncHelper; 
 

 
public class Repository { 
 

 
    public String name; 
 

 
    public Repository(String name) { 
 
     this.name = name; 
 
    } 
 

 
    public String getName() { 
 
     return name; 
 
    } 
 

 
    public void setName(String name) { 
 
     this.name = name; 
 
    } 
 

 

 

 

 
}
this is my interface and its calling class 
 

 
public interface Github { 
 

 
    @GET("https://stackoverflow.com/users/{user}") 
 
    public void getRepo(@Path("user") String user, Callback<Repository> response); 
 

 
} 
 

 

 

 
public class GitHubService { 
 
    private static String API_URL = "https://api.github.com"; 
 

 
    public static Github getService() { 
 
     Retrofit retrofit = new Retrofit.Builder() 
 
       .baseUrl(API_URL) 
 
       .build(); 
 
     Github github = retrofit.create(Github.class); 
 

 
     return github; 
 
    }

+0

Пожалуйста, поделитесь StackTrace и разделяют версию модернизации, а также ... как бета2 или 3 .... –

+0

com.squareup.retrofit2: переоснащения: 2.0.0-Beta4 –

+0

Пожалуйста, разделяющие StackTrace .. –

ответ

1

включили ли вы клиент зависимость okHttp в ваш проект также ретрофит 2 вам нужно инкапсулировать запрос апи с Позвоните или наблюдаемый с помощью RxJava адаптеры Вот как вы можете сделайте это по телефону

Так что в вашем случае интерфейс должен быть

@GET("https://stackoverflow.com/users/{user}") 
    public Call<Repository> getRepo(@Path("user") String user); 

и коды вызова должны быть как

Call<Repository> call = apiService.getUser(username); 
call.enqueue(new Callback<Repo>() { 
    @Override 
    public void onResponse(Response<Repo> response) { 
    } 

    @Override 
    public void onFailure(Throwable t) { 

    } 
}); 

С называют также можно отменить текущую апи вызов Вы можете прочитать этот учебник для более Информация https://github.com/square/retrofit/tree/master/samples/src/main/java/com/example/retrofit https://guides.codepath.com/android/Consuming-APIs-with-Retrofit

http://inthecheesefactory.com/blog/retrofit-2.0/en