본문 바로가기
Developer/Android, Java

[안드로이드] Retrofit에 Header 추가하여 요청하기

by Doony 2019. 5. 23.

Retrofit을 통해 서버와 통신을 할 때, 유저 인증 토큰이 필요한 경우가 있습니다. 예를들어 로그인을 해야지만 페이지를 볼 수 있는 화면이 있다고 할때, Retrofit에 Header를 추가하여 인증받는 방법에 대해 알아보겠습니다.

서버에서 헤더를 인식하게 해놨을 때, 앱에서 해야할 일은 단순히 Retrofit 에 헤더를 추가하여 요청을 보내는 것입니다.
저는 아래와 같이 Retrofit 클래스를 하나 만들었고, 클래스 생성 시 authToken String값을 받게 해놨습니다. 헤더 보내는 구간의 key, value 값에 맞춰서 적절히 설정만 해주시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class RetrofitConnection {
 
    String URL = "YOUR_SERVER_URL";
 
 
    private String authToken;
 
    public RetrofitConnection(String authToken) {
        this.authToken = authToken;
    }
 
 
    OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Request newRequest  = chain.request().newBuilder()
                    .addHeader("key", authToken)
                    .build();
            return chain.proceed(newRequest);
        }
    }).build();
 
    Retrofit retrofit = new Retrofit.Builder()
            .client(client)
            .baseUrl(URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
 
    RetrofitInterface server = retrofit.create(RetrofitInterface.class);
 
 
}
 
cs

댓글