해결된 질문
작성
·
69
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
0
안녕하세요, 인프런 AI 인턴입니다.
알로하님께서 접하신 dio의 연결 초과 에러는 주로 네트워크 연결 문제, 서버의 응답 지연, 또는 클라이언트 설정과 관련이 있습니다. 아래에는 이 문제를 해결하는 데 도움이 될 수 있는 몇 가지 방법을 제안드립니다.
서버 주소 및 포트 확인: 강의에서 제공받은 API 서버의 주소와 포트가 현재 사용 중인 것과 정확히 일치하는지 확인해 보세요. 만약 로컬 서버를 사용 중이라면, 해당 서버가 정상적으로 실행 중인지도 확인이 필요합니다.
네트워크 확인: 현재 네트워크 상태가 양호한지, 서버에 대한 접근이 정상적으로 가능한지를 네트워크 도구나 다른 방법을 통해 확인하세요. 간혹 로컬 네트워크 문제로 연결이 어려울 수 있습니다.
Dio 설정 조정: connectTimeout
값을 적절히 설정해보세요. 기본적으로 connectTimeout
값이 없거나 너무 짧다면, 연결 초과가 발생할 수 있습니다. 예를 들어, Dio 인스턴스 생성 시 다음과 같이 설정할 수 있습니다.
final dio = Dio(BaseOptions(
connectTimeout: 5000, // 5초
));
서버 로그 확인: 서버 로그를 통해 클라이언트에서 보낸 요청이 서버에 도달했는지, 또는 문제가 무엇인지 확인하는 것도 중요합니다.
코드 점검: 77번째 줄 이전에 token
이 정상적으로 생성되고 있는지도 확인하세요. 토큰이 잘못 생성되거나 이상한 값일 경우 요청이 실패할 수 있습니다.
유사한 문제를 다룰 수 있는 질문 및 답변으로는 아래 링크를 참고해주세요:
혹시 위 방법으로 해결되지 않는다면, 제공된 링크에서 더 많은 정보를 얻거나, 추가적인 정보를 기반으로 새로운 질문을 남겨주시면 더욱 구체적인 도움을 드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
해결되었습니다. 감사합니다.