String result = "";
OutputStreamWriter outStream = null;
PrintWriter writer = null;
InputStreamReader tmp = null;
BufferedReader reader = null;
try {
URL url = new URL(cmProperties.seven_restUrl);
HttpURLConnection http = (HttpURLConnection) url.openConnection(); // 접속
// --------------------------
// 전송 모드 설정 - 기본적인 설정
// --------------------------
http.setDefaultUseCaches(false);
http.setDoInput(true); // 서버에서 읽기 모드 지정
http.setDoOutput(true); // 서버로 쓰기 모드 지정
http.setRequestMethod("POST"); // 전송 방식은 POST
// --------------------------
// 헤더 세팅
// --------------------------
// 서버에게 웹에서 <Form>으로 값이 넘어온 것과 같은 방식으로 처리하라는 걸 알려준다
http.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// --------------------------
// 서버로 값 전송
// --------------------------
StringBuffer buffer = new StringBuffer();
if (map != null) {
Set key = map.keySet();
int iCnt = 0;
for (Iterator iterator = key.iterator(); iterator.hasNext(); ) {
String keyName = (String) iterator.next();
String valueName = map.get(keyName);
if(iCnt != 0) buffer.append("&");
iCnt++;
buffer.append(keyName).append("=").append(valueName);
}
log.info("키 대여 완료 알림 buffer.toString():" + buffer.toString());
}
outStream = new OutputStreamWriter(http.getOutputStream(), "UTF-8");
writer = new PrintWriter(outStream);
writer.write(buffer.toString());
writer.flush();
// --------------------------
// Response Code
// --------------------------
// http.getResponseCode();
// --------------------------
// 서버에서 전송받기
// --------------------------
tmp = new InputStreamReader(http.getInputStream(), "UTF-8");
reader = new BufferedReader(tmp);
StringBuilder builder = new StringBuilder();
String str;
while ((str = reader.readLine()) != null) {
builder.append(str);
builder.append("\n");
}
result = builder.toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outStream.close();
writer.close();
tmp.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Try-with-resources 로 변경하고 싶은데 방법이 안 떠오른다...
void createDestinationDataFile(String destinationName, Properties connectProperties)
{
File destCfg = new File(destinationName + ".jcoDestination");
if (!destCfg.exists()) {
try(FileOutputStream fos = new FileOutputStream(destCfg, false)){
connectProperties.store(fos, "for tests only !");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}