Retrofit2を使ってみた時のメモ
githubのリポジトリのidとnamaをログで出すまで
導入方法
app/build.gradle
compile 'com.squareup.retrofit2:retrofit:2.2.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0'
を追加
(gsonはjsonを扱うためのライブラリ)
AndroidManifest.xml
を追加
インターネットを使えるようにパーミッション設定
データクラスの定義
Repo.java
public class Repo{ @Expose public Long id; @Expose public String name; public String toString(){ return "id : " + id + " , name : " + name; } }
今回はidとnameだけ
インターフェースの定義
GitHubService.java
public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); }
Retrofitの設定
MainActivity.java
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); GitHubService service = retrofit.create(GitHubService.class);
> Unable to create converter...
のような風に言われてしまったので
> .addConverterFactory(GsonConverterFactory.create())
を追加しています。
リクエストをインスタンス化
MainActivity.java
Call<List<Repo>> call = service.listRepos("ユーザ名");
callを実行
call.enqueue(new Callback<List<Repo>>() { @Override public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) { Log.d("call","onResponse"); List<Repo> repos = response.body(); for (Repo repo:repos) { Log.d("repo",repo.toString()); } } @Override public void onFailure(Call<List<Repo>> call, Throwable t) { Log.d("call","onFailure"); } });
そしたらログに出てきました。
最後に
とりあえず表示だけできたのでメモしました。
gsonについてもRetrofitについても
まだ、わからないことだらけなので少しずつ検証していきます。
0 件のコメント:
コメントを投稿