retrofit2のサンプルにokhttp3を追加します。


okhttp3は通信用のパッケージです。
Android標準の通信パッケージが貧弱なので、みんなこれを使う用です。

logging用のパッケージを追加します。

```build.gradle
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
```

ヘッダーの追加

```java:MainActivity.java
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {
    @Override
    public okhttp3.Response intercept(Chain chain) throws IOException {
        Request original = chain.request();

        //header設定
        Request request = original.newBuilder()
                .header("Accept", "application/json")
                .method(original.method(), original.body())
                .build();

        okhttp3.Response response = chain.proceed(request);

        return response;
    }
});
```

ログ出力追加

```java:MainActivity.java
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
httpClient.addInterceptor(logging);
OkHttpClient client = httpClient.build();
```

これを追加しました。

```java:MainActivity.java
.client(client)
```

こんな感じになります。

```java:MainActivity.java
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://192.168.43.134:3000/")
        .addConverterFactory(GsonConverterFactory.create())
        .client(client)
        .build();
```

全体としては、こうなっています。

```java:MainActivity.java
private void showMember(){
    OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
    httpClient.addInterceptor(new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request original = chain.request();

            //header設定
            Request request = original.newBuilder()
                    .header("Accept", "application/json")
                    .method(original.method(), original.body())
                    .build();

            okhttp3.Response response = chain.proceed(request);

            return response;
        }
    });

    //ログ出力設定
    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
    httpClient.addInterceptor(logging);
    OkHttpClient client = httpClient.build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://192.168.43.134:3000/")
            .addConverterFactory(GsonConverterFactory.create())
            .client(client)
            .build();
    ApiService service = retrofit.create(ApiService.class);
    Call<User> call = service.getUser(1);
    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {
            Log.d("debug1", response.body().getEmail());
        }

        @Override
        public void onFailure(Call<User> call, Throwable t) {
            Log.d("debug2", t.getMessage());
        }
    });


    Call<ListUser> call2 = service.listUsers();
    call2.enqueue(new Callback<ListUser>() {
        @Override
        public void onResponse(Call<ListUser> call, Response<ListUser> response) {
            List<User> listUser = response.body().getListUsers();
            int s = listUser.size();
            for(int i = 0; i < s; i++){
                Log.d("debug3", listUser.get(i).getEmail());
            }
        }

        @Override
        public void onFailure(Call<ListUser> call, Throwable t) {
            Log.d("debug4", t.getMessage());
        }
    });
}
```


```build.gradle
dependencies {
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:support-v4:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'com.google.code.gson:gson:2.7'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    testCompile 'junit:junit:4.12'
}
```