음… 파라메터를 jsonInputString 현태로 보내시는 것 같아요.
String param = "grant_type=authorization_code&client_id="+REST_API_KEY+"&redirect_uri="+REDIRECT_URI+"&client_secret="+CLIENT_SECRET+"&code="+code;
이런 형태로 구성하셔서 body data에 전달 하셔야합니다.
[rest api 예제] java (spring boot) - 카카오 로그인, 카카오 친구목록 조회, 메시지 발송
String param = "grant_type=authorization_code&client_id="+REST_API_KEY+"&redirect_uri="+REDIRECT_URI+"&client_secret="+CLIENT_SECRET+"&code="+code;
String rtn = httpCallService.Call(Const.POST, TOKEN_URI, Const.EMPTY, param);
public String Call(String method, String reqURL, String header, String param) {
String result = "";
try {
String response = "";
URL url = new URL(reqURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(method);
conn.setRequestProperty("Authorization", header);
if(param != null) {
System.out.println("param : " + param);
conn.setDoOutput(true);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
bw.write(param);
bw.flush();
}
int responseCode = conn.getResponseCode();
System.out.println("responseCode : " + responseCode);
System.out.println("reqURL : " + reqURL);
System.out.println("method : " + method);
System.out.println("Authorization : " + header);
InputStream stream = conn.getErrorStream();
if (stream != null) {
try (Scanner scanner = new Scanner(stream)) {
scanner.useDelimiter("\\Z");
response = scanner.next();
}
System.out.println("error response : " + response);
}
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
while ((line = br.readLine()) != null) {
result += line;
}
System.out.println("response body : " + result);
br.close();
} catch (IOException e) {
return e.getMessage();
}
return result;
}