주말 내내 해도 안 되던 코드를 오늘에서야 해결했다 ... ㅠㅠ
참 이것저것 많이 짰다고 생각했는데, 주석이랑 프린트 찍은 거랑 지우고 나니 참 작고 귀여운 내 코드... 🤣
def post(self,request):
data = json.loads(request.body)
try:
login_url = "https://로그인하려는 사이트 주소"
header = {"Content-Type": "application/json; charset=utf-8"}
response = requests.post(login_url, data=data, headers=header)
위와 같이 body에 데이터를 담고, request.post로 요청하는데 url, data, headers를 담아서 print(response)를 하면! 안나온다....
한참 찾아본 결과 문제는 data=data
이 부분이었다.
나는 당연히
data = json.loads(request.body)
로, body에 담아져서 온 데이터 자체가 json이기 때문에 data=data 라고 선언만 해주면 되는 줄 알았다.
보여지는 건 json이지만, json object일 뿐 실제 json 데이터는 아니었다.
그래서
data=json.dumps(data)
코드로 수정했고,
data=json.dumps(data)
는 json=data
와 같았다.
즉, json 은 단순한 변수가 아니고, json뒤에 있는 걸 json화 시켜주는 문법이었다!
def post(self,request):
data = json.loads(request.body)
try:
login_url = "https://로그인하려는 사이트 주소"
header = {"Content-Type": "application/json; charset=utf-8"}
response = requests.post(login_url, json=data, headers=header)