에러 예시
OpenAPI_ServiceResponse>
<cmmMsgHeader>
<returnCode>500</returnCode>
<errMsg>게이트웨이 내부 서비스 오류</errMsg>
</OpenAPI_ServiceResponse>
해결방법
내 경우엔 1회 요청시 응답 수를 조절하니 해결되었다.
설명
api 요청시 전달하는 파라미터 값 중 "numOfRows"를 하향조정해서 1회 요청시 응답에 포함되는 item 수를 조절해줘야 한다.
찾아보니 공공데이터포털에 같은 문제로 누군가가 문의를 했던 기록을 확인할 수 있었는데, 공공데이터활용지원센터의 답변을 보면 Response Message의 크기가 중계서버에서 허용된 Message Size를 초과한 경우 표출되는 메시지라고 한다.
https://www.data.go.kr/bbs/qna/selectQna.do?qnaId=QNA_0000000000042082
만약 사용하는 api에서 xml과 json을 모두 지원한다면 json을 사용하자.
데이터 형식에 따른 용량 차이 덕분인지 json에서 허용하는 "numOfRows" 값은 xml에서 허용하는 "numOfRows" 값의 2배 이상 많더라도 정상 호출이 가능하다.