Retrofit2 를 이용한 http 통신

조회수 4504회

http 통신하여 데이터를 받아오기위해 Retrofit2 라이브러리를 사용해 봤습니다.

공식 홈페이지에 있는 예제를 활용해봤는데요.

라이브러리를 사용하지 않았을때보다는 코드는 간단해진거 같은데,

예제의 데이터를 가져와 액티비티에 뿌려주는데도 시간이 오래걸립니다. 약 3초?

저의 사용 방법이 잘못된건가요?

괜찮은 라이브러리가 있다면 추천도 해주시면 좋겠습니다~

  • interface
public interface GitHubService {

    @GET("users/{user}/repos")
    Call<List<Repo>> listRepos(@Path("user") String user);

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

        GitHubService service = retrofit.create(GitHubService.class);
        final Call<List<Repo>> repos = service.listRepos("octocat");

        repos.enqueue(new Callback<List<Repo>>() {
            @Override
            public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) {
                List<Repo> repoList = response.body();
                textView.setText(repoList.toString());
            }

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

            }
        });
  • 특별히 잘못 사용하시는 부분은 없는 것 같습니다. 네트워크가 느렸거나 JSON 컨버팅이 오래걸린게 아닐까요? 알 수 없는 사용자 2016.3.28 15:16
  • 집 네트워크가 이상하긴한데 영향이 있었네요. 데이터를 좀 더 가공해서 테스트해봐야겠어요. 김선우 2016.3.28 20:00

1 답변

  • 좋아요

    3

    싫어요
    채택 취소하기

    저도 사용하다 그런경우가 생기더군요...

    "내부적으로 Dynamic Proxy를 사용하고 런타임에 애노테이션을 파싱한다. 두 번째 호출부터는 애노테이션에 있는 정보가 캐시되지만 첫 번째 호출은 길어질 수 있다"

    http://d2.naver.com/helloworld/377316

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)