android retrofit2 사용하기!

2017. 5. 26. 16:52프로그래밍/Andorid

안녕하세요. 오늘은 웹에서 데이터를 가져오는걸 도와주는 Retorift2 를 사용해보겠습니다.


1. 웹에서 데이터를 가져오기떄문에 인터넷퍼미션을 주셔야겠죠?


<uses-permission android:name="android.permission.INTERNET" />


2. Retorift2 를사용하기위해선 Module:app 에 Library를 compile 해야합니당.


compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'


3. 데이터를 받기위해 클래스를 하나 만들어줍시다.


public class Contributor {
String login;
String html_url;

int contributions;

@Override
public String toString() {
return login + "(" + contributions + ")";
}

}


4. Retrofit 은 인터페이스 를만들어서 가져오드라구요. 그러므로 하나작성합시다 :)


public interface GitHubService {

@GET("repos/{owner}/{repo}/contributors")
Call<List<Contributor>> repoContributors(
@Path("owner") String owner
, @Path("repo") String repo);

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}


5. 그럼 메인에서 데이터를 가져와봅시다!!


GitHubService gitHubService = GitHubService.retrofit.create(GitHubService.class);
Call<List<Contributor>> call = gitHubService.repoContributors("square", "retrofit");
call.enqueue(new Callback<List<Contributor>>() {
@Override
public void onResponse(Call<List<Contributor>> call,
Response<List<Contributor>> response) {
Log.e("테스트",response.body().toString());
TextView textView = (TextView) findViewById(R.id.textview);
textView.setText(response.body().toString());
}

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

}
});