이번 시간에는 Android 시스템에서 Http 통신을 하는 방법에 대해 소개합니다.
Http 통신을 하기 위해서는 먼저 Http Protocol이 무엇인지 선행학습이 되어 있어야 합니다.
먼저 Http Protocol에 대해 전부 다루기에는 양이 너무 많아지니 기본적으로 Get방식과 Post방식에 대해
간략하게 설명한 뒤에 Android에서 적용 시키는 방법을 알아보도록 하겠습니다.
1) GET과 POST
GET 방식
먼저 GET방식이란 서버로부터 정보를 조회하기 위해 설계된 메서드입니다.
GET은 서버로 요청을 전송할 때 데이터를 Body에 담아 보내지 않고 쿼리 스트링에 붙여 전송합니다.
이 말이 무엇이냐 하면 URL의 끝에?라는 구분자를 통해 데이터를 붙여 보내는 방식입니다.
? 구분자 뒤에는 "키값 = 데이터" 한 쌍으로 이루어지며 여러 개의 요청은 뒤에 계속적으로 추가해줍니다.
여러개의 요청 시에는 각 쌍마다의 구분자 &를 사용합니다.
www.test-url.com/test?name=value&name1=vale1
POST 방식
POST방식은 리소스를 생성/변경하기 위하여 설계되었으며 GET 방식과 달리 전송해야 할 데이터를
HTTP 메시지의 Body에 담아 전송합니다.
HTTP 메세지의 Body는 길이의 제한 없이 데이터를 전송할 수 있으므로 대용량 데이터를 전송 할
때에는 GET방식이 아닌 POST방식을 사용합니다.
또한 보안적인 측면에서도 GET방식은 URL에 데이터가 표시되기 때문에 취약한 반면
POST는 Body에 담기기 때문에 GET방식과 다르게 보안적인 측면에서 안전합니다.
HTTP 통신을 함에 있어 대부분 GET은 많이 사용되지 않고 POST를 선호하는 이유이기도 합니다.
2) Android 적용
먼저 통신에 사용될 주소를 지정해주는 configs class를 생성한 뒤에 Url 부분에
통신을 할 서버의 주소를 입력해 줍니다.
그런 다음 실질적으로 통신을 담당해줄 Http class를 만들어 위 그림과 같이 구성하여 줍니다.
해당 글에서는 Http의 POST방식으로 통신하는 소스코드를 예로 들었습니다.
try {
str = new Http(). execute("test=value&test 1=value1"). get();
Log.d("결과값 데이터 >>", str);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
마지막으로 위와 같이 함수 호출을 해주게 되면 str에 결과값이 리턴되게 됩니다.
'안드로이드' 카테고리의 다른 글
[Android] Foreground (0) | 2021.10.11 |
---|---|
[Android] NFC란? (0) | 2021.10.08 |
[Android] 카메라로 읽은 이미지 고화질로 가져오기 (1) | 2021.09.06 |
[Android] Application 사용 가능 기간 구현 (0) | 2021.08.18 |
[Android] Bluetooth Le Auto Connection 구현 (0) | 2021.08.18 |
댓글