MultipartRequest는 일반적인 get, post 함수로 통신하면 결과로 Response타입의 데이터를 주는 것과 달리 결과로 StreamedResponse타입의 데이터를 뱉는다. 이를 Response클래스 내의 fromStream함수를 이용해 StreamedResponse를 Response로 변경하면 get, post 등의 결과처럼 처리 가능하다. // request -> MultipartRequest request; final streamedResponse = await request.send(); final result = await http.Response.fromStream(streamedResponse); 참고 How to get response body with request.sen..
문제점 content type을 application/json으로 넣을 경우의 body엔 application/json에 맞게 String값이 들어가야하는데 map형식으로 넣어서 문제 발생 다시 말해서 application/json은 json string(json 형태를 문자열로 입력하는 형식)타입을 전송한단 것을 의미하기 때문에 map으로 넣으면 안되는 것 해결방법 map형식인 데이터를 dart:convert 패키지 내의 jsonEncode함수로 래핑하여 String으로 변경되어 들어가도록 구현 예시는 아래와 같다. import 'package:http/http.dart'; import 'dart:convert'; func() async { final result = await post(Uri.pa..
HTTP 헤더에 들어가는 정보 중 하나로 데이터(자원)의 타입을 명시하는 헤더이다. content-type은 MIME표준에 정의되어 있다. MIME(Multipurpose Internet Mail Extension)은 전자우편을 위한 인터넷 표준 포맷이다. 전자우편은 기본적으로 7비트의 ASCII문자로 전송되는데 8비트 이상의 코드를 사용하는 문자나 이진파일은 MIME 포맷으로 변환되어 전송되게 된다. 이 때 어떤 데이터인지 MIME type이 정해져야 한다. HTTP에서의 Content-Type에 들어가는 것이 MIME type이다. MIME표준에 정의된 것을 사용한다는 것이 이것을 말하는 것이다. GET방식은 대부분 key=value 형식으로 url에 파라미터를 담아 보내므로 content-type ..