음성인식 REST API python에서 사용중 Transfer_Encoding 400 에러

안녕하세요.
새로운 파이썬 서비스 개발 테스트 중에 음성 REST API를 사용해보고 있습니다.

간단하게 먼저 예제 그대로 테스트 중인데
curl 예제
curl -v -X POST “https://kakaoi-newtone-openapi.kakao.com/v1/recognize
-H “Transfer-Encoding: chunked”
-H “Content-Type: application/octet-stream”
-H “X-DSS-Service: DICTATION”
-H “Authorization: KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk”
–data-binary @heykakao.wav

이 코드를 API 키를 입력한 뒤 실행하면 정상적으로 작동하는 반면
그대로 파이썬3에 옮겨서 한 코드는

import requests

headers = {
    'Transfer-Encoding': 'chunked',
    'Content-Type': 'application/octet-stream',
    'X-DSS-Service': 'DICTATION',
    'Authorization': 'KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk',
}

data = open("heykakao.wav", "rb").read()
response = requests.post('https://kakaoi-newtone-openapi.kakao.com/v1/recognize', headers=headers, data=data)
response.text

는 400 Bad Request 에러가 뜹니다.

그러던 중 Transfer-Encoding 헤더를 삭제하고 나서 요청을 보내보니까
청크분할은 되지 않지만 그래도 정상적인 응답이 오네요.

혹시 이 부분 관련해서 제가 숙지하지 못한 내용이 있을지 질문드립니다!
그냥 Transfer-Encoding 부분 생략하고 써도 문제 없을까요?

안녕하세요~

client 환경에 따라 동작에 차이가 보이네요. 문서 보완하도록 하겠습니다.

‘Transfer-Encoding: chunked’ 헤더는 보내는 데이터 양을 알 수 없을 때 전송해주시면 되겠고,

위 테스트 코드처럼 파일을 전송할 때는 위 헤더 없이 전송해주시면 되겠습니다.

감사합니다.

1개의 좋아요