안드로이드

안드로이드 Http 라이브러리 okhttp3 사용 예제!

알통몬_ 2018. 7. 17. 10:46
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


안드로이드의 Http라이브러리인 okhttp3 사용 방법에 대해 공부합니다.


현재 버전은 3.8.1 버전이 최신버전입니다.


먼저 build.gradle(Module:app)에 의존성을 추가해줍니다.

implementation 'com.squareup.okhttp3:okhttp:3.8.1'


1. get 방식으로 요청을 보내고 값 받아오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
 
public class GetEx {
  OkHttpClient client = new OkHttpClient();
 
  String run(String url) throws IOException {
    Request request = new Request.Builder()
        .url(url)
        .build();
 
    try (Response response = client.newCall(request).execute()) {
      return response.body().string();
    }
  }
 
  public static void main(String[] args) throws IOException {
    GetEx ex = new GetEx();
    String response = ex.run("요청을 보낼 주소 ex: http://localhost:8080");
    System.out.println(response);
  }
}
cs


2.  POST 방식 + 요청 쿼리 보내고 값 받아오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class PostEx {
 
    public static void main(String[] args) throws IOException {
 
        OkHttpClient client = new OkHttpClient();
 
        RequestBody body =
                new FormBody.Builder().add("key""value").build();
        Request request = new Request.Builder()
                .url("http://localhost:8080/users")
                .post(body)
                .build();
        Response response = client.newCall(request).execute();
        ResponseBody responseBody = response.body();
        String res = responseBody.toString();
        System.out.print(res);
    }
}
 
cs


3. Callback 함수 추가하기

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
public class PostEx {
 
    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();
 
        RequestBody body =
                new FormBody.Builder().add("key""value").build();
        Request request = new Request.Builder()
                .url("http://localhost:8080/users")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                System.out.print(e.getMessage());
                e.printStackTrace();
            }
 
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String res = response.toString();
                System.out.print(res);
            }
        });
    }
    
}
 
cs


직접사용해보면 크게 어렵지 않습니다.

※ import 시에는 okhttp3 으로 시작하는 클래스들을 추가해야합니다.

이상입니다.

반응형