inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 중급 2편 - 실전 앱 개발 - 미국 주식 앱 (with 클린 아키텍처)

수업과 관련이 없지만 물을 곳이 없어...교수님께 여쭙니다..

357

yungjoon2

작성한 질문수 7

0

dto랑 이미지 파일을 dio로 이용하여 post 하려는데 뭘해도 400, 415 등등 에러가 나옵니다 혹시 이유를 알 수 있을까요?... 수업내용이 아닌 질문 죄송합니다. 
 Future<void> postUser(UserInfo userDto, XFile? imageFile) async {
    try {
      // Dio 인스턴스 생성
      Dio dio = Dio();

      // 멀티파트 요청 생성
      FormData formData = FormData();

      // Add userDto as a JSON part
      formData.fields.add(MapEntry('userDto', jsonEncode(userDto.toJson())));

      // Add image file
      if (imageFile != null) {
        formData.files.add(MapEntry(
          'image',
          await MultipartFile.fromFile(imageFile.path),
        ));
      }
      // Dio를 사용하여 POST 요청 보내기
      Response response = await dio.post(
        'http://43.200.217.158:8080/bookstore-0.0.1-SNAPSHOT/user',
        data: formData,
        options: Options(
          headers: {
            "Content-Type": "multipart/form-data",
          },
        ),
      );

      // 응답 확인
      if (response.statusCode == 200) {
        print("User Data sent successfully");
      } else {
        print('response.statusCode: ${response.statusCode}');
        throw Exception("Failed to send data");
      }
    } catch (e) {
      print("Failed to send post data: $e");
    }
  }
-------------------------------------------------------------------------------
서버 코드 스프링 
@PostMapping(value = "/user",  consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE})
    public ResponseEntity<ApiResponse> save(@RequestPart UserDto userDto, @RequestPart MultipartFile image) {
        try {
            log.info("유저 생성 입장!!");
            Long save = userService.save(userDto, image);
            return ResponseEntity.status(HttpStatus.OK).body(new ApiResponse("Created", "유저 생성 성공", save));
        } catch (Exception e) {
            log.error("e={}", e);
            return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ApiResponse("NotFound", "유저 생성 실패", null));
        }
    }

 

flutter ios android

답변 1

0

오준석

Postman 같은 툴로 서버에 똑같이 Post 요청을 해 보셨나요? 잘 되던가요?

어느쪽이 문제인지를 찾아야 할 것 같고, 경험상 서버를 직접 만들면서 발생하는 에러는 대부분 서버쪽 문제가 많았습니다.

415는 Unsupported Media Type 인데 미디어 타입이 맞지 않다고 하는 것 보면 서버 쪽에서 멀티파트를 받는 설정에서 뭔가 빠진 것은 없는지 확인해 보시기 바랍니다.

교수님이라고 하시는 걸 보면 언제 저에게 수업을 받았던 학생인가요?

0

yungjoon2

습관적으로 교수님이라고 했습니다. 직접 수업들은적은 없어요 ㅎㅎ..

post맨에서 post는 잘 됩니다.

image

0

오준석

postman 에서 되고 앱에서 안 되면 대부분 서버쪽 cors 정책 문제였는데요.
전부 접속이 허용되도록 설정되어 있는지 확인해 보세요

그래프 그리기 위한 API가 프리미엄 요금제를 구독해야만 가능하다고 합니다...ㅜㅜ

0

74

2

api 제한량 25회

0

100

2

프로젝트 전체 소스코드

0

62

2

DTO 작성시 freezed 3.0 변경 부분 문의

0

167

2

클린아키텍처 의존관계 관련

0

215

2

mapper 생성 시...

0

168

1

강의에 있는 모든 freezed를 제거해도 되나요?

0

257

2

뷰모델 생성자로 리스트 불러오

0

219

1

개남님 질문있씁니다! company_listing_entitiy가 왜 엔티티 인가요?

0

198

1

안녕하세요 디버그 모드 관련 여쭤볼게 있어요

0

293

1

다음 로드맵 질문

0

346

1

csv_parser라는 abstract를 작성하는 필요성이 궁금합니다

0

404

1

repository에 관하여

0

357

1

강의 예시에 대한 답변이 궁금합니다.

0

360

1

flutter 실행 관련 질문드립니다.

0

1060

1

폴더 구조에 대해 질문드립니다.

0

819

1

Repository test 관련해 질문이 있습니다.

0

262

1

stock_repository_impl.dart 에러

0

269

2

viewModel에서 context를 받는 행위 질문

0

382

1

stockApi 질문 드립니다.

0

178

1

stockApi 질문

0

260

1

라이브 템플릿 영상

0

313

1

StockApi 메서드 반환 타입에 대해

0

281

1

entity와 domain의 차이

0

4505

1