본문 바로가기
안드로이드

[Android] Http 통신

by 코딩히어로 2021. 10. 7.
728x90

제목


이번 시간에는 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 적용


설명1

먼저 통신에 사용될 주소를 지정해주는 configs class를 생성한 뒤에 Url 부분에

 

통신을 할 서버의 주소를 입력해 줍니다.

 

설명2

그런 다음 실질적으로 통신을 담당해줄 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에 결과값이 리턴되게 됩니다.

728x90
반응형

댓글