inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

retrofit 요청 후 상태 코드

193

맥북유저

작성한 질문수 9

0

retrofit에서 요청 후에 인터셉터 이후에 UI 단에서 스낵바를 띄우기 위해 상태코드를 반환 받고 싶은데 Response타입을 반환 시키려면 파일을 임의로 수정해주어야 하더라고요 혹시 다른 방법이 있을까요?

 


  @POST('/reservation')
  @Headers({'Authorization': 'true'})
  Future<Response<dynamic>> makeReservation({
    @Body() required ReservationRequestModel reservation,
  });
 child: IconButton(
                    onPressed: () {
                      reservationRepositoryProvide
                          .getRepository()
                          .makeReservation(
                              reservation: ReservationRequestModel(
                            meetingRoomId: widget.room.id,
                            reservationStartTime: selectReservationTimeData
                                .selectedFullDate.value!
                                .add(1.seconds),
                            reservationEndTime: selectReservationTimeData
                                .selectedFullDate.value!
                                .add(const Duration(hours: 1)),
                            members: 4,
                          ))
                          .then((res) {
                        if (res.statusCode == 201) {
                          context.showSnackbar(
                              message: '예약 완료 되었습니다. 마이페이지에서 확인해주세요', isSuccess: true);
                        } else {
                          final errorMessage = res.data['errorMessage'];
                          context.showSnackbar(
                              message: errorMessage, isSuccess: false);
                        }
                      });
                    },

 

현재 상태 코드를 반환 시켜 스낵바를 띄워주는데

아래처럼 retrofit 코드를 임의로 고쳐야하네요

  @override
  Future<Response<dynamic>> makeReservation(
      {required ReservationRequestModel reservation}) async {
    const _extra = <String, dynamic>{};
    final queryParameters = <String, dynamic>{};
    final _headers = <String, dynamic>{r'Authorization': 'true'};
    _headers.removeWhere((k, v) => v == null);
    final _data = <String, dynamic>{};
    _data.addAll(reservation.toJson());
    final _result = await _dio
        .fetch<Map<String, dynamic>>(_setStreamType<Response<dynamic>>(Options(
      method: 'POST',
      headers: _headers,
      extra: _extra,
    )
            .compose(
              _dio.options,
              '/reservation',
              queryParameters: queryParameters,
              data: _data,
            )
            .copyWith(
                baseUrl: _combineBaseUrls(
              _dio.options.baseUrl,
              baseUrl,
            ))));
    // final value = Response<dynamic>.fromJson(_result.data!);
    return _result;
  }

다른 방법이 있을까요?

flutter 하이브리드-앱

답변 1

0

코드팩토리

안녕하세요!

생성 파일은 직접 수정하시면 안됩니다.

언제든지 재생성 할 수 있는 파일이기 때문입니다.

반환 타입을 Future<HttpResponse>로 변경해보세요!

관련 링크 첨부해드립니다.

https://stackoverflow.com/questions/68256277/how-to-access-status-code-in-a-http-call-using-retrofit-package

감사합니다!

0

맥북유저

감사합니다 저도 파일을 수정하고 싶지 않았는데 방법을 몰라서 하고있었네요ㅠㅠ 감사합니다

Isar 마지막 업데이트는 2년전입니다.

0

30

0

FlutterSecureStorage 질문

0

31

0

Dio onError Interceptor 만드는 부분에 질문이 있습니다.

0

79

2

관리자 기능에 대한 질문

0

100

2

part 'restaurant_model.g.dart';

0

92

1

36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.

0

56

2

2번 반환 상황 관련 질문

0

61

2

riverpod 3.0

0

139

2

Asset folder??

0

82

2

디자이너와 협업 시 프레임 크기 설정 관련 질문

0

113

2

FutureProvider, StateNotifierProvider 선택 기준

0

70

2

컴포넌트 모델화

0

64

2

쿼리 파라미터

0

84

2

화면 안보임

0

68

2

PaginationListView

0

54

1

강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.

0

101

2

프로토타입이미지

0

62

2

여러 객체를 상태 관리하는 방법에 대한 질문

0

84

2

장바구니 결제하기 응답이 500이 옵니다.

0

105

2

removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?

0

67

2

이 두가지는 완전히 동일한 기능인가요?

0

106

3

내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...

0

77

2

_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?

0

86

2

코딩 작성 순서 관련 질문

0

88

2