2017-08-21 3 views
0

Je suis en train d'utiliser retrofit2 pour faire un appel api, voici mon codeobtenir une réponse de l'appel API de mise à niveau

public class MainActivity extends Activity implements Callback<List<Repo>>{ 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ApiCLient apiCLient = new ApiCLient(); 
     IApiService apiService = apiCLient.getApiService(); 
     Call<List<Repo>> call = apiService.getRepos(); 
     call.enqueue(this); 
    } 

    @Override 
    public void onResponse(Call<List<Repo>> call, Response<List<Repo>> 
response) { 
     if (response.isSuccessful()) { 
      List<Repo> repos = response.body(); 
     } else { 
      ResponseBody a = response.errorBody(); 
      Log.d("asd", response.errorBody().toString()); 
     } 
    } 

    @Override 
    public void onFailure(Call<List<Repo>> call, Throwable t) { 
     Log.d("asd", t.getLocalizedMessage()); 
    } 
} 

Je ne reçois pas de réponse. En outre, le débogueur n'entre pas les méthodes onResponse ou onFailure.

classe ApiClient

private IApiService mService; 
static final String BASE_URL = "https://api.github.com"; 

public ApiCLient(){ 
    Retrofit retrofit = null; 
    try { 
     Gson gson = new GsonBuilder().setLenient().create(); 
     retrofit = new Retrofit.Builder() 
       .baseUrl(BASE_URL) 
       .addConverterFactory(GsonConverterFactory.create(gson)) 
       .build(); 
    } catch (Exception e){ 
     e.printStackTrace(); 
    } 
    mService = retrofit.create(IApiService.class); 
} 

public IApiService getApiService(){ 
    return mService; 
} 

Enfin, l'interface IApiService

public interface IApiService { 

    @GET("https://api.github.com/repositories?since=364") 
    Call<List<Repo>> getRepos(); 
} 

Répondre

0

vous devez utiliser ce code:

public interface IApiService { 

    @GET("repositories?since=364") 
    Call<List<Repo>> getRepos(); 
} 

pour votre interface. et utiliser

static final String BASE_URL = "https://api.github.com/"; 

pour BASE_URL.