Server returned HTTP response code: 400 for URL: 에러 해결

REST API를 사용하여 카카오 로그인 구현중에 있습니다.

autorize_code값을 가지고 아래 정보를 가지고오는 부분을 콜하고 있는데

java.io.IOException: Server returned HTTP response code: 400 for URL: https://kauth.kakao.com/oauth/token 에러가 자꾸 나네요

아래 코드에 있는 client_secret를 제거하면 401 에러고 바뀌고요… 해결방법좀 찾을수 있을까요 ??

    final String AUTH_HOST = "https://kauth.kakao.com";
    final String tokenRequestUrl = AUTH_HOST + "/oauth/token";

    String CLIENT_ID = ""; // 해당 앱의 REST API KEY 정보. 개발자 웹사이트의 대쉬보드에서 확인 가능
    String REDIRECT_URI = ""; // 해당 앱의 설정된 uri. 개발자 웹사이트의 대쉬보드에서 확인 및 설정 가능
    String code = autorize_code; // 로그인 과정중 얻은 authorization code 값

    HttpsURLConnection conn = null;
    OutputStreamWriter writer = null;
    BufferedReader reader = null;
    InputStreamReader isr= null;

    try {
      final String params = String.format("grant_type=authorization_code&client_id=%s&redirect_uri=%s&code=%s&client_secret=%s",
                        CLIENT_ID, REDIRECT_URI, code,"");

      final URL url = new URL(tokenRequestUrl);

      conn = (HttpsURLConnection) url.openConnection();
      conn.setRequestMethod("POST");
      conn.setDoOutput(true);

      writer = new OutputStreamWriter(conn.getOutputStream());
      writer.write(params);
      writer.flush();

      final int responseCode = conn.getResponseCode();
      System.out.println("\nSending 'POST' request to URL : " + tokenRequestUrl);
      System.out.println("Post parameters : " + params);
      System.out.println("Response Code : " + responseCode);

      isr = new InputStreamReader(conn.getInputStream());
      reader = new BufferedReader(isr);
      final StringBuffer buffer = new StringBuffer();
      String line;
      while ((line = reader.readLine()) != null) {
        buffer.append(line);
      }

      System.out.println(buffer.toString());
      return null;
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
        // clear resources
        if (writer != null) {
          try {
              writer.close();
           } catch(Exception ignore) {
           }
        }
        if (reader != null) {
          try {
              reader.close();
          } catch(Exception ignore) {
          }
        }
        if (isr != null) {
            try {
                isr.close();
            } catch(Exception ignore) {
            }
         }
    }

@ruael2002
redirect_uri 파라미터의 값이 redirect path에 설정하신 값하고 달라서 발생하는 에러네요.
앱 설정을 다시 확인해 보세요.

autorize_code는 잘가지고 오는데 autorize_code로 데이터를 불러오려고 하면 계속 저러네요 ;;