백엔드 Back-end/장고 Django

장고django API 서버 개발 - 안드로이드Android retrofit2 이용 시 request body 처리

Tap to restart 2021. 3. 15. 13:00
반응형

가끔 아무 것도 아닌 걸로 긴 시간을 보내게 된다.

 

retrofit2에서 이런 식으로 구현했다면

@Headers("Content-type: application/json")
@POST("test")
Call<String> postTest(@Body TestData testData);

당연히 post로 body로 보내지는 데이터 형태도 json 형태다.

 

request.body.decode('utf-8')을 로그 찍어보면

데이터가 {"name"="ted", "age"=40} 이런 형태로 들어온다.

 

django에서는 따라서

import json
body = json.loads(request.body.decode('utf-8'))

이렇게 데이터를 받아야 한다.

 

하지만 이렇게 받고 있었다.

from urllib.parse import parse_qsl 
data = dict(parse_qsl(request.body.decode('utf-8')))

데이터가 "name=ted&age=40" 이런 형태일 경우에는 위처럼 해야하지만 json 형태였다.

반응형