http

개발/Flutter

MultipartRequest의 response 처리

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..

개발/Flutter

[Error] Bad state: Cannot set the body fields of a Request with content-type "application/json"

문제점 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..

개발/Server

[HTTP] Content-Type

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 ..

leebera_
'http' 태그의 글 목록