Developer MJ Story

[Android/Http] Http/Https Get/Post request (HttpURLConnection) 본문

Software/Android

[Android/Http] Http/Https Get/Post request (HttpURLConnection)

집근처 2016. 2. 12. 10:39
반응형

안녕하세요.

집근처 개발자 입니다.


Naver, Daum, Instagram등의 paltform에서 API를 제공하고, 이를 이용하여 개발 하시는 분들이 많죠?
이런 platfrom에서 제공하는 API들은 보통 RestAPI로 HTTP Get/Post 등의 방식으로 동작합니다.


그래서 오늘은 platform과 연동하기 위해 필요한 Http Get/Post 요청하는 방법에 대해 포스팅하겠습니다.

JAVA/Andorid에서 제공하는 Class 중에 'HttpURLConnection'이라는 매우 심플하면서 파워풀한 class가 있습니다.

이 class를 이용해 아주 간단하게 Http request를 할 수 있습니다.

백마디 말보다 한 번 보는것이 좋죠?

아래 예제 소스입니다.

public String requestHttpGet(String url){
		try {
			URL reqUrl = new URL(url);
			HttpsURLConnection urlConn = (HttpsURLConnection)reqUrl.openConnection();
			urlConn.setRequestMethod("GET");
			urlConn.setRequestProperty("Accept", "*/*");
			
			int resCode = urlConn.getResponseCode();
			System.out.println("resCode : " + resCode);
			if(resCode != HttpsURLConnection.HTTP_OK) return null;
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
			String input;
			StringBuffer sb = new StringBuffer();
			
			while((input = reader.readLine())!= null){
				sb.append(input);
			}
			return sb.toString();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}


저는 Http 요청하는 함수를 하나 만들어 사용합니다.

하나의 함수는 한 가지 역할만 해야 한다는 룰도 지킬 수 있고, 범용적으로 만들었기 때문에

코드 재사용 측면과 코드 가독성 측면에서 상당히 좋다고 할 수 있습니다.


Java/Android에서 HttpURLConnection을 활용하면 매우 쉽게 Http Get/Post 등의 요청이 가능합니다.


반응형