본문 바로가기
프로그래밍 언어/java + jsp + jstl

[java] 자바의 http 통신을 위한 HttpURLConnection 소스 예제

by 우림 2016. 8. 19.
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.JsonParseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.google.gson.GsonBuilder;
import com.skt.ssp.domain.Consts;
import com.skt.ssp.domain.contents.Contents;
import com.skt.ssp.domain.intelligence.IntellgentceConsts;
import com.skt.ssp.intelligence.service.batch.BatchService;

try
{
	Map<String, Object> jsonParamMap = getJsonParamVideo( contents );
	String sourceUrl = "http://211.23.3.42:18000/api/encoder.do";

	// Connect
	URL url = new URL( sourceUrl );
	conn = (HttpURLConnection)url.openConnection();
	 
	conn.setDoOutput(true);
	conn.setRequestProperty("Content-Type", IntellgentceConsts.CONTENT_TYPE);
	conn.setRequestProperty("Accept", IntellgentceConsts.CONTENT_TYPE);
	conn.setRequestMethod(IntellgentceConsts.REQUEST_METHOD);
	conn.setConnectTimeout(5000);
	conn.connect();

	// write
	os = conn.getOutputStream();
	String stringParam = new GsonBuilder().create().toJson( jsonParamMap, Map.class );

	bw = new BufferedWriter(new OutputStreamWriter( os, IntellgentceConsts.CHARSET_UTF8 ) );
	bw.write( stringParam );
	bw.close();
	os.close();

	logger.info("Result Code : "+ conn.getResponseCode() );
	logger.info("Result Message : "+ conn.getResponseMessage() );
}
catch (JsonParseException je)
{
	je.getMessage();
	logger.info("je.getMessage():"+je.getMessage());
}
catch (IOException ie)
{
	logger.error("n", ie);
    	logger.error("IOException result = ["+ ie.getMessage() + "]");
}
catch (Exception e)
{
	logger.error("n", e);
}
finally
{				
	if ( os != null ) try{os.close();}catch(IOException e){
		logger.info("[ERROR] IOException e : " + e.getMessage());
	}
	if ( bw != null ) try{bw.close();}catch(IOException e){
		logger.info("[ERROR] BufferedWriter IOException e : " + e.getMessage());
	}

	conn.disconnect();
}
자바에서 http 통신으로 동영상 인코딩을 요청하고 값을 받아와야 하는 작업을 하게 되어
HttpURLConnectiond으로 호출하고 response 받는 소스를 개발했습니다.

자바 샘플이 없어서 여기저기 뒤져서 작업하느라고 시간이 좀 걸렸네요.
필요하신 분들을 위해 샘플소스를 올려봅니다.

댓글