개발자포럼(Developer Forum)
다음과 같이 에러가 나는데요. 이거 도저히 못쓰겠는데
Web
조회수 280
댓글 6
2024-01-22 00:20:27

* API 에러가 발생하는 경우 아래 사항을 알려주시면 보다 빠른 확인이 가능합니다. (Enter information for quick resolution when API error occurs) - 애플리케이션 명 (Application Name) : - 플랫폼 명 (Platform Name) : - 호출 Full URL (Call Full URL) : API Key를 제외한 파라미터 포함 ex) https://api.odsay.com/v1/api/busLaneDetail?lang=0&busID=12018 * API Key Auth error 가 발생하는 경우 - FAQ(https://lab.odsay.com/community/faq) 중 "API호출 결과값이 리턴되지 않아요." 항목을 먼저 참조해주세요. (If API Key Auth error occurs, check the ‘FAQ_Result of API call is not returned’) AxiosError: read ETIMEDOUT at AxiosError.from (/home/ubuntu/nnulu-tsnode/node_modules/axios/dist/node/axios.cjs:837:14) at RedirectableRequest.handleRequestError (/home/ubuntu/nnulu-tsnode/node_modules/axios/dist/node/axios.cjs:3090:25) at RedirectableRequest.emit (node:events:517:28) at eventHandlers.<computed> (/home/ubuntu/nnulu-tsnode/node_modules/follow-redirects/index.js:37:24) at ClientRequest.emit (node:events:517:28) at TLSSocket.socketErrorListener (node:_http_client:501:9) at TLSSocket.emit (node:events:517:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { syscall: 'read', code: 'ETIMEDOUT', errno: -110, config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function], Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: Object [AxiosHeaders] { Accept: 'application/json, text/plain, */*', 'Content-Type': undefined, 'User-Agent': 'axios/1.6.5', 'Accept-Encoding': 'gzip, compress, deflate, br' }, params: { stationName: '압구정', apiKey: '8cN044vmVPdztxEEu+iQecVqcXcIB4', CID: '1000', stationClass: 2, displayCnt: 5, lang: 0 }, method: 'get', url: 'https://api.odsay.com/v1/api/searchStation', data: undefined }, request: <ref *1> Writable { _writableState: WritableState { objectMode: false, highWaterMark: 16384, finalCalled: false, needDrain: false, ending: false, ended: false, finished: false, destroyed: false, decodeStrings: true, defaultEncoding: 'utf8', length: 0, writing: false, corked: 0, sync: true, bufferProcessing: false, onwrite: [Function: bound onwrite], writecb: null, writelen: 0, afterWriteTickInfo: null, buffered: [], bufferedIndex: 0, allBuffers: true, allNoop: true, pendingcb: 0, constructed: true, prefinished: false, errorEmitted: false, emitClose: true, autoDestroy: true, errored: null, closed: false, closeEmitted: false, [Symbol(kOnFinished)]: [] }, _events: [Object: null prototype] { response: [Function: handleResponse], error: [Function: handleRequestError], socket: [Function: handleRequestSocket] }, _eventsCount: 3, _maxListeners: undefined, _options: { maxRedirects: 21, maxBodyLength: Infinity, protocol: 'https:', path: '/v1/api/searchStation?stationName=%EC%95%95%EA%B5%AC%EC%A0%95&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', method: 'GET', headers: [Object: null prototype], agents: [Object], auth: undefined, family: undefined, beforeRedirect: [Function: dispatchBeforeRedirect], beforeRedirects: [Object], hostname: 'api.odsay.com', port: '', agent: undefined, nativeProtocols: [Object], pathname: '/v1/api/searchStation', search: '?stationName=%EC%95%95%EA%B5%AC%EC%A0%95&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0' }, _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: [TLSSocket], _header: 'GET /v1/api/searchStation?stationName=%EC%95%95%EA%B5%AC%EC%A0%95&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0 HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/1.6.5\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: api.odsay.com\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/v1/api/searchStation?stationName=%EC%95%95%EA%B5%AC%EC%A0%95&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', _ended: false, res: null, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.odsay.com', protocol: 'https:', _redirectable: [Circular *1], [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, _currentUrl: 'https://api.odsay.com/v1/api/searchStation?stationName=%EC%95%95%EA%B5%AC%EC%A0%95&apiKey=8cN044vmmVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', [Symbol(kCapture)]: false }, cause: Error: read ETIMEDOUT at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) { errno: -110, code: 'ETIMEDOUT', syscall: 'read' } } 127.0.0.1 - - [21/Jan/2024:15:14:18 +0000] "GET /search/naver?keyword=%ED%95%9C%EA%B5%AD+%EC%9D%B4%EC%8A%88 HTTP/1.0" 200 3541 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot" AxiosError: read ECONNRESET at AxiosError.from (/home/ubuntu/nnulu-tsnode/node_modules/axios/dist/node/axios.cjs:837:14) at RedirectableRequest.handleRequestError (/home/ubuntu/nnulu-tsnode/node_modules/axios/dist/node/axios.cjs:3090:25) at RedirectableRequest.emit (node:events:517:28) at eventHandlers.<computed> (/home/ubuntu/nnulu-tsnode/node_modules/follow-redirects/index.js:37:24) at ClientRequest.emit (node:events:517:28) at TLSSocket.socketErrorListener (node:_http_client:501:9) at TLSSocket.emit (node:events:517:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { syscall: 'read', code: 'ECONNRESET', errno: -104, config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function], Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: Object [AxiosHeaders] { Accept: 'application/json, text/plain, */*', 'Content-Type': undefined, 'User-Agent': 'axios/1.6.5', 'Accept-Encoding': 'gzip, compress, deflate, br' }, params: { stationName: '혜화', apiKey: '8cN044vmImVPdztxEEu+iQecVqcXcIB4', CID: '1000', stationClass: 2, displayCnt: 5, lang: 0 }, method: 'get', url: 'https://api.odsay.com/v1/api/searchStation', data: undefined }, request: <ref *1> Writable { _writableState: WritableState { objectMode: false, highWaterMark: 16384, finalCalled: false, needDrain: false, ending: false, ended: false, finished: false, destroyed: false, decodeStrings: true, defaultEncoding: 'utf8', length: 0, writing: false, corked: 0, sync: true, bufferProcessing: false, onwrite: [Function: bound onwrite], writecb: null, writelen: 0, afterWriteTickInfo: null, buffered: [], bufferedIndex: 0, allBuffers: true, allNoop: true, pendingcb: 0, constructed: true, prefinished: false, errorEmitted: false, emitClose: true, autoDestroy: true, errored: null, closed: false, closeEmitted: false, [Symbol(kOnFinished)]: [] }, _events: [Object: null prototype] { response: [Function: handleResponse], error: [Function: handleRequestError], socket: [Function: handleRequestSocket] }, _eventsCount: 3, _maxListeners: undefined, _options: { maxRedirects: 21, maxBodyLength: Infinity, protocol: 'https:', path: '/v1/api/searchStation?stationName=%ED%98%9C%ED%99%94&apiKey=8cN044vmmVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', method: 'GET', headers: [Object: null prototype], agents: [Object], auth: undefined, family: undefined, beforeRedirect: [Function: dispatchBeforeRedirect], beforeRedirects: [Object], hostname: 'api.odsay.com', port: '', agent: undefined, nativeProtocols: [Object], pathname: '/v1/api/searchStation', search: '?stationName=%ED%98%9C%ED%99%94&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0' }, _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: [TLSSocket], _header: 'GET /v1/api/searchStation?stationName=%ED%98%9C%ED%99%94&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0 HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/1.6.5\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: api.odsay.com\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/v1/api/searchStation?stationName=%ED%98%9C%ED%99%94&apiKey=8cN044vmImVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', _ended: false, res: null, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.odsay.com', protocol: 'https:', _redirectable: [Circular *1], [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, _currentUrl: 'https://api.odsay.com/v1/api/searchStation?stationName=%ED%98%9C%ED%99%94&apiKey=8cN044vmmVPdztxEEu%2BiQecVqcXcIB4&CID=1000&stationClass=2&displayCnt=5&lang=0', [Symbol(kCapture)]: false }, cause: Error: read ECONNRESET at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) { errno: -104, code: 'ECONNRESET', syscall: 'read' } } null null API 키는 다 좀 지웠구요 그래서 보안적인 요소는 없는데 이거 무슨 에러에요 대체? 에러가 이렇게 떠서 항상 안된다니까요? 아니 아래처럼 요청하면 가끔씩 압구정 역을 못찾는다구요 https://api.odsay.com/v1/api/searchStation { stationName: '압구정', apiKey: 'IB4', CID: '1000', stationClass: 2, displayCnt: 5, lang: 0 } 뭐 대체 어떻게 해야하냐고요 이걸 제가 몇번씩 질문을 해야하는 지 모르곘네
(edited)
- 댓글 6
-
-
민지민짜응2024-01-22 00:31:25
timeout이 계속 뜬다고요. 이거좀 어떻게 좀 해보라니까요?
-
민지민짜응2024-01-22 00:31:40
아니 뭐 우리쪽에서 가끔씩 요청 IP를 이상하게 보내는건가? 아니 뭐 좀 해보세요
-
민지민짜응2024-01-22 00:31:55
허가되지 않은 IP로 보내는건지 뭔지 알아야 세팅을 하죠 뭐 답을 좀 주세요
-
민지민짜응2024-01-22 00:32:29
가끔씩 그냥 계속해서 답변을 안준다고요. API 호출하면 가끔씩 timeout 난다고요. 제가 이거 몇번씩 말했는데 제대로 설명도 없네 진짜
-
whcho2024-01-22 12:42:35
안녕하세요 민지민짜응님 ODsay 관리자 입니다. 문의 주신 내용 관련해서 저희 서비스를 재차 확인해봤는데 API 요청이 들어오면 데이터를 보내드리는 데 1초 이내에 반환해드리는 것을 확인했습니다. 보내주신 정보의 Parameter나 로그 기록상으로 봤을 때 API Key도 정상적으로 들어온 것 확인했습니다. 그래서 요청 보내신 IP나 세팅 상의 문제는 아닌 것 같습니다. 게다가 문의 내용중 오류 발생한 로그도 보내주셨는데 TIMEOUT 문제는 네트워크 쪽 문제일 가능성이 가장 높은 것 같아 보입니다. 저희 서버 모니터링 시에도 네트워크 문제가 확인되지 않고 다른 사용자 분들께서도 네트워크 관련 문의 주신 분이 없어 서버 네트워크에 특이사항은 없는 것으로 확인됩니다. 그 외의 중간 네트워크나 사용자분 네트워크 환경에 의해 해당 문제 발생했을 가능성도 있어 확인 부탁드립니다. 감사합니다. Discover your routes, ODsay!
-
민지민짜응2024-01-23 11:52:19
감사합니다. 정리하자면, 오디세이 측의 문제는 전혀 없다는 것이죠? 그럼 저희 쪽 오류인 것으로 판단하고 해결해보겠습니다. 감사합니다.
-