인프런 커뮤니티 질문&답변

알로하님의 프로필 이미지
알로하

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Dio로 Auth API 요청해보기

로그인에러

작성

·

163

0

안녕하세요. 코펙님.

이번에 중급강의로 넘어오면서 에러가 해결되지 않아 질문드립니다. 일단 저는 지금 노트북에서 갤럭시기기 연결해서 공부중입니다.

E/flutter ( 6917): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.other]: SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = 192.168.1.10, port = 36410

로그인 버튼을 클릭 시 위의 에러가 표시됩니다.

ip주소도 콘솔에서 찾아서 변경하였지만, 안되었고...

삽질을 1시간 정도 하였지만 도저히 이유를 모르겠어서 게시판에 글을 남깁니다.

그리고 제가 dio의 버전이 처음에는 최신버전으로 했지만

혹시 강의버전과 일치하지 않아서 생기는 오류가 아닐까? 하고 프로젝트를 새로 생성해 dio버전을 맞추어서 실행하니

E/flutter ( 6917): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.other]: SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = 192.168.1.10, port = 48142

E/flutter ( 6917): Source stack:

E/flutter ( 6917): #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:488:35)

E/flutter ( 6917): #1 DioMixin.request (package:dio/src/dio_mixin.dart:483:12)

E/flutter ( 6917): #2 DioMixin.post (package:dio/src/dio_mixin.dart:97:12)

E/flutter ( 6917): #3 LoginScreen.build.<anonymous closure> (package:delivery2/user/view/login_screen.dart:65:44)

E/flutter ( 6917): #4 InkResponseState.handleTap (package:flutter/src/material/inkwell.dart:1171:21)

E/flutter ( 6917): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:344:24)

E/flutter ( 6917): #6 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:652:11)

E/flutter ( 6917): #7 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:309:5)

E/flutter ( 6917): #8 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:242:7)

E/flutter ( 6917): #9 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:696:9)

E/flutter ( 6917): #10 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)

E/flutter ( 6917): #11 PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)

E/flutter ( 6917): #12 LinkedHashMapMixin.forEach (dart:collection-patch/compacthash.dart:633:13)

E/flutter ( 6917): #13 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)

E/flutter ( 6917): #14 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)

E/flutter ( 6917): #15 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:495:19)

E/flutter ( 6917): #16 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:475:22)

E/flutter ( 6917): #17 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:425:11)

E/flutter ( 6917): #18 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:420:7)

E/flutter ( 6917): #19 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:383:5)

E/flutter ( 6917): #20 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:330:7)

E/flutter ( 6917): #21 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:299:9)

E/flutter ( 6917): #22 _invoke1 (dart:ui/hooks.dart:328:13)

E/flutter ( 6917): #23 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:442:7)

E/flutter ( 6917): #24 _dispatchPointerDataPacket (dart:ui/hooks.dart:262:31)

E/flutter ( 6917):

E/flutter ( 6917): #0 DioMixin.fetch.<anonymous closure> (package:dio/src/dio_mixin.dart:643:7)

E/flutter ( 6917): #1 _RootZone.runBinary (dart:async/zone.dart:1666:54)

E/flutter ( 6917): #2 FutureListener.handleError (dart:async/futureimpl.dart:178:22)

E/flutter ( 6917): #3 Future._propagateToListeners.handleError (dart:async/future_impl.dart:859:47)

E/flutter ( 6917): #4 Future._propagateToListeners (dart:async/future_impl.dart:880:13)

E/flutter ( 6917): #5 Future._completeError (dart:async/future_impl.dart:660:5)

E/flutter ( 6917): #6 SyncCompleter.completeError (dart:async/future_impl.dart:63:12)

E/flutter ( 6917): #7 Completer.completeError (dart:async/futureimpl.dart:27:5)

E/flutter ( 6917): #8 Future.any.onError (dart:async/future.dart:623:45)

E/flutter ( 6917): #9 _RootZone.runBinary (dart:async/zone.dart:1666:54)

E/flutter ( 6917): #10 FutureListener.handleError (dart:async/futureimpl.dart:178:22)

E/flutter ( 6917): #11 Future._propagateToListeners.handleError (dart:async/future_impl.dart:859:47)

E/flutter ( 6917): #12 Future._propagateToListeners (dart:async/future_impl.dart:880:13)

E/flutter ( 6917): #13 Future._completeError (dart:async/future_impl.dart:660:5)

E/flutter ( 6917): #14 Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:746:7)

E/flutter ( 6917): #15 microtaskLoop (dart:async/schedulemicrotask.dart:40:21)

E/flutter ( 6917): #16 startMicrotaskLoop (dart:async/schedulemicrotask.dart:49:5)

E/flutter ( 6917):

위의 오류가 발생하였습니다.

일단. 갤럭시 기기를 실제로 연동해서 강의를 진행하고 싶은 마음이 있어서 게시판에 글을 남깁니다.

감사합니다

답변 3

0

백엔드 서버 켜셨나요?
저는 서버 켜니까 제대로 되네요!!

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

저희가 시뮬레이터/에뮬레이터에서 제너릭한 IP를 사용 할 수 있는 이유는 "같은 기기/네트워크이기 때문입니다."

예를들어 127.0.0.1은 루프백 IP, 내 자신을 의미합니다.

만약에 이 IP를 다른 기기에서 사용한다면 해당 기기의 루프백을 의미하게 됩니다.

그렇기 때문에 완전 다른 위치를 가르키는 주소가 됩니다.

기기를 같은 네트워크에 연결하고 해당 기기의 정확한 IP 주소를 사용하면 연결이 가능해집니다.

저희가 AWS 서버 사용할때 정확한 공개 IP를 사용하는 것과 같은거라고 생각하시면 됩니다.

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

알로하님의 질문에 대해 답변 드리겠습니다. 접하신 에러는 주로 네트워크 연결 문제, 특히 실제 모바일 기기에서 Flutter 앱이 백엔드 서버에 연결을 시도할 때 발생하는 SocketException 에러입니다. 이 오류는 주로 앱이 서버에 접근할 수 없을 때 발생합니다. 여러 원인이 있겠지만, 주로 확인해야 하는 사항은 다음과 같습니다:

  1. 서버 주소 및 포트 확인: 에러 메시지에서 안내하는 대로 192.168.1.10 주소 및 포트 번호(예에서는 36410, 48142)가 실제 서버 주소와 일치하는지를 확인해야 합니다. 로컬 개발 환경에서는 주로 127.0.0.1(localhost)를 사용하지만, 실제 모바일 기기에서는 네트워크 상의 서버 주소를 정확히 입력해야 합니다.
  2. 방화벽 및 네트워크 연결 문제: 해당 포트가 방화벽에 의해 차단되었거나, 모바일 기기와 서버 간의 네트워크 연결 문제가 없는지 확인하세요.
  3. dio 버전 호환성: dio 라이브러리의 버전을 강의에서 사용한 버전과 동일하게 맞추었다고 하셨지만, dio나 다른 의존성 라이브러리의 버전에서 발생할 수 있는 문제를 철저히 검토해 보세요.
  4. 백엔드 서버 실행 상태: 실제로 백엔드 서버가 실행 중이며, 올바르게 설정되어 외부 요청을 받을 준비가 되어 있는지 확인해보세요.

안타깝게도 제공된 링크에서 똑같은 상황과 완전히 일치하는 해결사례를 찾지 못했습니다. 하지만, 실제 기기에서 발생하는 네트워크 연결 문제와 관련하여 토큰 관련 질문입니다에서 언급된 솔루션이 도움이 될 수도 있습니다. 이 사례에서는 포트 번호 불일치 및 실제 기기의 IP 주소 사용이 문제였고, 정확한 서버 주소 및 포트 번호를 사용하여 해결했습니다.

더 복잡한 문제이거나, 여전히 해결되지 않는 경우, 서버의 로그를 확인하거나 네트워크 도구를 사용해 요청이 올바르게 서버에 도달하는지 확인하는 것도 좋은 방법입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

알로하님의 프로필 이미지
알로하

작성한 질문수

질문하기