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

알로하님의 프로필 이미지

작성한 질문수

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

Dio에 Provider 적용하기

dio 네트워크 에러

해결된 질문

24.10.03 10:33 작성

·

49

0

강의를 진행하던 도중 재실행을 했더니 갑작스럽게

E/flutter ( 7367): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioException [connection timeout]: The request connection took longer than 0:00:00.000000 and it was aborted. To get rid of this exception, try raising the RequestOptions.connectTimeout above the duration of 0:00:00.000000 or improve the response time of the server.
E/flutter ( 7367): Error: SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = 192.168.1.106, port = 39308
E/flutter ( 7367): #0      DioMixin.fetch (package:dio/src/dio_mixin.dart:519:7)
E/flutter ( 7367): <asynchronous suspension>
E/flutter ( 7367): #1      LoginScreenState.build.<anonymous closure> (package:delivery/user/view/loginscreen.dart:77:36)
E/flutter ( 7367): <asynchronous suspension>
E/flutter ( 7367):

dio의 연결초과 에러라고 뜨는데 해결방법을 모르겠습니다.

잘 진행하다가 갑자기 이렇게 되버려서...

 

 

77번째줄 코드는 아래와 같습니다.


  final resp = await dio.post(
   'http://ip/auth/login',
     options: Options(
       headers: {
        'authorization': 'Basic $token',
                          },
                        ),
                      );

 

답변 2

0

알로하님의 프로필 이미지
알로하
질문자

2024. 10. 03. 10:55

메인화면부터 로딩이 너무 길어졌습니다.

알로하님의 프로필 이미지
알로하
질문자

2024. 10. 03. 12:33

해결되었습니다. 감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 03. 10:36

안녕하세요, 인프런 AI 인턴입니다.
알로하님께서 접하신 dio의 연결 초과 에러는 주로 네트워크 연결 문제, 서버의 응답 지연, 또는 클라이언트 설정과 관련이 있습니다. 아래에는 이 문제를 해결하는 데 도움이 될 수 있는 몇 가지 방법을 제안드립니다.

  1. 서버 주소 및 포트 확인: 강의에서 제공받은 API 서버의 주소와 포트가 현재 사용 중인 것과 정확히 일치하는지 확인해 보세요. 만약 로컬 서버를 사용 중이라면, 해당 서버가 정상적으로 실행 중인지도 확인이 필요합니다.

  2. 네트워크 확인: 현재 네트워크 상태가 양호한지, 서버에 대한 접근이 정상적으로 가능한지를 네트워크 도구나 다른 방법을 통해 확인하세요. 간혹 로컬 네트워크 문제로 연결이 어려울 수 있습니다.

  3. Dio 설정 조정: connectTimeout 값을 적절히 설정해보세요. 기본적으로 connectTimeout 값이 없거나 너무 짧다면, 연결 초과가 발생할 수 있습니다. 예를 들어, Dio 인스턴스 생성 시 다음과 같이 설정할 수 있습니다.

    final dio = Dio(BaseOptions(
     connectTimeout: 5000, // 5초
    ));
    
  4. 서버 로그 확인: 서버 로그를 통해 클라이언트에서 보낸 요청이 서버에 도달했는지, 또는 문제가 무엇인지 확인하는 것도 중요합니다.

  5. 코드 점검: 77번째 줄 이전에 token이 정상적으로 생성되고 있는지도 확인하세요. 토큰이 잘못 생성되거나 이상한 값일 경우 요청이 실패할 수 있습니다.

유사한 문제를 다룰 수 있는 질문 및 답변으로는 아래 링크를 참고해주세요:

  • DioError 해결 방안에서는, 네트워크 설정 및 포트 문제로 발생한 유사한 오류 해결 방법을 다루고 있습니다.

혹시 위 방법으로 해결되지 않는다면, 제공된 링크에서 더 많은 정보를 얻거나, 추가적인 정보를 기반으로 새로운 질문을 남겨주시면 더욱 구체적인 도움을 드릴 수 있습니다.

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