[플러터] application/octet-stream type

2021. 11. 19. 22:59·Flutter/Flutter Tech

REST API 사용 시 content-type이라는 property가 존재한다.

말 그대로 데이터와 형식과 관련된 부분이다.

일반적으로는 application/json 타입을 사용하여 json의 형태로 데이터를 주고 받지만, API에 따라 다양한 타입이 요구된다.

 

n-cloud CSR rest api

 

위는 N-cloud의 Clova Speech Recognition REST API에서 요구되는 헤더이고, 음성 파일을 텍스트로 번역해주는 API로 파일을 전송한다. 이같이 content-type이 octet-stream인 경우 Flutter에서 request하는 코드는 다음과 같다.

 

import 'package:dio/dio.dart';
import 'dart:io';

void requestSTT(String fileURL) async {
  Response request = await new Dio().post(_uri + '?lang=Kor',
      options: Options(headers: {
        'Content-Type': 'application/octet-stream',
        'X-NCP-APIGW-API-KEY-ID': _clientID,
        'X-NCP-APIGW-API-KEY': _clientSecret,
      }),
      data: File(fileURL).openRead());
  print(request.data['text']);
}

 

File().openRead()이 octet-stream에 해당하는 content-type이다.

어디에도 예제 코드도 해결방법도 없어 상당히 힘들었는데, N-cloud에서 제공한 JS와 python 예제에서 open()과 같은 함수를 사용하고 있어 운좋게 성공했다..

Flutter는 이슈가 발생하면 해결법을 찾기 정말 힘들다.

 

추가로 위의 코드에서는 http가 아닌 dio 패키지를 사용했는데, dio가 파일 업/다운로드시 체감 속도가 훨씬 빠르다고 느끼는 분들이 꽤 많았다.

저작자표시 비영리 변경금지 (새창열림)

'Flutter > Flutter Tech' 카테고리의 다른 글

[플러터] 가로 모드 회전 막기  (0) 2021.12.01
[플러터] Http로 Json 파싱하기  (0) 2021.06.17
[플러터] 프로젝트 내 Json 파일 읽기  (0) 2021.04.15
[플러터] Status bar 색상 변경하기  (1) 2021.03.03
[플러터] Device 설정 무시 글자 크기 고정하기  (0) 2021.02.28
'Flutter/Flutter Tech' 카테고리의 다른 글
  • [플러터] 가로 모드 회전 막기
  • [플러터] Http로 Json 파싱하기
  • [플러터] 프로젝트 내 Json 파일 읽기
  • [플러터] Status bar 색상 변경하기
박유상의 개발블로그
박유상의 개발블로그
개발블로그
  • 박유상의 개발블로그
    박유상의 개발블로그
    박유상의 개발블로그
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Lingory
    웹
    Redux
    플러터
    useState
    Firebase
    포트폴리오
    DART
    react
    링고리
    flutter web
    파이썬
    DP
    프로그래머스
    useRef
    HTML
    플러터 웹
    Python
    리액트
    map
    JSON
    알고리즘
    자바스크립트
    탐욕법
    CSS
    TypeScript
    github
    Flutter
    useTranslation
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박유상의 개발블로그
[플러터] application/octet-stream type
상단으로

티스토리툴바