ํ ์์คํ ์ API๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ ์ฌ์ฉ ์์ ์ด๋ค.
POST๋ฐฉ์์ด๋ฉฐ, ๋ฐ์ดํฐ๋ JsonObject๋ฅผ ๋ง๋๋ ๋ถ๋ถ์ ์ค์ ์ด์ ์์ค์ฌ์ ์คํํ ์๋ ์์ง๋งbody์ชฝ์ String์ธ์, Json Obect๊ฐ ์ค์ฒฉํ์ฌ ๋ค์ด๊ฐ์์ด์ ์ ๋ฅผ ๋จน์๋ ๊ธฐ์ต์ด ์๋ค.
private void restApiCallPost(String sendUrl, String token, String param, JSONObject jsonObject)
{
String[] returnData = new String[2];
HttpURLConnection con = null;
try {
URL url = new URL(sendUrl); //API URL ์
๋ ฅ
con = (HttpURLConnection) url.openConnection();
con.setConnectTimeout(10000); //connection timeout - 10์ด
con.setReadTimeout(10000); //contents ์กฐํ timeout - 10์ด
con.setRequestMethod("POST"); //์์ฒญ๋ฐฉ์์ ์ ํํ๋ค
con.setRequestProperty("System-ID", param);
con.setRequestProperty("Authorization", token); //API KEY ์ค์
con.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); //ํด๋น ํ์
์ผ๋ก ๋ฐ์ดํฐ ์ ์ก
con.setRequestProperty("Accept", "application/json"); //์๋ฒ Response Data ํ์
์ ์ง์ ํ์ฌ ์์ฒญ
con.setDoInput(true); //InputStream์ผ๋ก ์๋ต ๋ฐ์ดํฐ ๋ฐ๊ฒ ๋ค๋ ์ต์
con.setDoOutput(true); //OutputStream์ผ๋ก ๋ฐ์ดํฐ ์ ์กํ๊ฒ ๋ค๋ ์ต์
con.setUseCaches(false);
con.setDefaultUseCaches(false);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
byte[] input = jsonObject.toString().getBytes("utf-8"); //์๋ฒ ์ ์ก ๋ฐ์ดํฐ
wr.write(input);
wr.flush();
wr.close();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null)
{
response.append(inputLine);
}
in.close();
if(con.getResponseCode() == 200) //SUCCESS CODE
{
returnData[0] = "SUCCESS";
returnData[1] = "REQUEST DATA:"+jsonObject+"\nRESPONSE DATA:"+response.toString();
}else //ERROR CODE
{
returnData[0] = "ERROR";
returnData[1] = "REQUEST DATA:"+jsonObject+"\nRESPONSE DATA:"+response.toString();
}
} catch (MalformedURLException e) {
returnData[0] = "ERROR MalformedURL";
returnData[1] = e.getMessage();
} catch (IOException e) {
returnData[0] = "ERROR IO";
returnData[1] = e.getMessage();
e.printStackTrace();
} catch (Exception e) {
returnData[0] = "ERROR ETC";
returnData[1] = e.getMessage();
}
}