401Unauthorized

if(left_sound < right_sound) {
                System.out.println("111");
                // 오른쪽
                String TAG = this.getClass().getSimpleName();

                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy);
                HttpURLConnection conn = null;
                try {
                    URL url = new URL("https://kakaoi-newtone-openapi.kakao.com/v1/recognize");
                    conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("POST");
                    conn.setRequestProperty("Transfer-Encoding", "chunked"); // 파일 전송
                    conn.setRequestProperty("Content-Type", "application/octet-stream");
                    conn.setRequestProperty("X-DSS-Service", "DICTATION");
                    conn.setRequestProperty("Authorization", "KakaoAK {a1595e796b8ab30ce6b2993836b8ec6f}");
                    conn.setDoOutput(true);

                    File wavfile_R = new File(fn1);

                    if (wavfile_R.exists()) {
                        Log.d(TAG, "있다");
                    } else {
                        Log.d(TAG, "없다");
                    }

                    byte[] bytes = Files.readAllBytes(wavfile_R.toPath());
                    Log.d(TAG, "길이==" + bytes.length);

                    DataOutputStream request = new DataOutputStream(conn.getOutputStream()); // 오른쪽
                    request.write(bytes);
                    request.flush();
                    request.close();

                    StringBuilder sb = new StringBuilder();
                    if (conn.getResponseCode() == HttpsURLConnection.HTTP_OK) {
                        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                        String line;
                        while ((line = in.readLine()) != null) {
                            sb.append(line).append("\n");
                        }
                        in.close();
                        System.out.println("" + sb.toString());
                        result = sb.toString();
                        conn.disconnect();
                    } else {
                        Log.d(TAG, "여기");
                        System.out.println(conn.getResponseMessage());
                        result = conn.getResponseCode() + conn.getResponseMessage();
                        System.out.println(result);
                    }
                } catch (Exception e) {
                    Log.d(TAG, "저기");
                    System.out.println(e.toString());
                }
            } else {
                System.out.println("222");
                // 왼쪽
                String TAG1 = this.getClass().getSimpleName();

                StrictMode.ThreadPolicy policy1 = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy1);
                HttpURLConnection conn1 = null;

                try {
                    URL url = new URL("https://kakaoi-newtone-openapi.kakao.com/v1/recognize");
                    conn1 = (HttpURLConnection) url.openConnection();
                    conn1.setRequestMethod("POST");
                    conn1.setRequestProperty("Transfer-Encoding", "chunked"); // 파일 전송
                    conn1.setRequestProperty("Content-Type", "application/octet-stream");
                    conn1.setRequestProperty("X-DSS-Service", "DICTATION");
                    conn1.setRequestProperty("Authorization", "KakaoAK {a1595e796b8ab30ce6b2993836b8ec6f}");
                    conn1.setDoOutput(true);

                    File wavfile_L = new File(fn);

                    if (wavfile_L.exists()) {
                        Log.d(TAG1, "있다");
                    } else {
                        Log.d(TAG1, "없다");
                    }

                    byte[] bytes1 = Files.readAllBytes(wavfile_L.toPath());
                    Log.d(TAG1, "길이==" + bytes1.length);

                    DataOutputStream request = new DataOutputStream(conn1.getOutputStream()); // 오른쪽
                    request.write(bytes1);
                    request.flush();
                    request.close();

                    StringBuilder sb1 = new StringBuilder();
                    if (conn1.getResponseCode() == HttpsURLConnection.HTTP_OK) {
                        BufferedReader in = new BufferedReader(new InputStreamReader(conn1.getInputStream(), "UTF-8"));
                        String line;
                        while ((line = in.readLine()) != null) {
                            sb1.append(line).append("\n");
                        }
                        in.close();
                        System.out.println("" + sb1.toString());
                        result = sb1.toString();
                        conn1.disconnect();
                    } else {
                        Log.d(TAG1, "여기");
                        System.out.println(conn1.getResponseMessage());
                        result = conn1.getResponseCode() + conn1.getResponseMessage();
                        System.out.println(result);
                    }
                } catch (Exception e) {
                    Log.d(TAG1, "저기");
                    System.out.println(e.toString());
                }
            }

result 가 401Unauthorized가 뜨네요 api 호출 부분에서는 문제가 없는데 왜 이렇게 뜨는거죠 ??

안녕하세요~

401Unauthorized는 보통 Authorization 헤더가 잘못 넘어간 경우 발생하는데요.

첨부하신 소스상에 괄호가 있는데… {a15…c6f} 실제 코드에도 있나요?

conn.setRequestProperty("Authorization", "KakaoAK {a15...c6f}");

실제 코드라면 어떤걸 말씀하신건지 ??,

Authorization 에 { } 중괄호 제거 하고 테스트 해보시겠어요?

음 그래도 I/System.out: Unauthorized
401Unauthorized
이렇게 뜨네요 ㅠㅠㅠㅠㅠ

conn.setRequestProperty(“Authorization”, “REST API 키값”);
제거해서 이렇게 하니까
I/System.out: javax.net.ssl.SSLException: Read error: ssl=0x75e9d8ad08: I/O error during system call, Connection reset by peer
이 렇게 뜨네요 ㅠㅠㅠ

요렇게 해보시겠어요?
conn.setRequestProperty(“Authorization”, “KakaoAK a1595e796b8ab30ce6b2993836b8ec6f”);

I/System.out: javax.net.ssl.SSLException: Read error: ssl=0x75e55d52c8: I/O error during system call, Connection reset by peer
이 에러 뜨네요ㅠㅠㅠㅠ

포스트맨으로 해당 앱키 테스트 해보니 정상 작동합니다.

첨부해주신 소스는 크게 두 영역으로 API 호출하는 부분이 나눠져있는데요.

로직을 최소화 해서 빈 프로젝트에 샘플 오디오 파일로 API 정상 호출 테스트 한번 해주세요.
https://sandbox-developers.kakao.com/docs/latest/ko/voice/rest-api#speech-to-text

image