Open acrojuno opened 2 years ago
2.
클라이언트에서 서버 주소를 10.0.2.2로 바꿔줘도 서버 연결을 시도하면 클라이언트에서는
Http status error [400]
에러를 띄우고
장고 백엔드 측에서는
Invalid HTTP_HOST header: '10.0.2.2:8000'. You may need to add '10.0.2.2' to ALLOWED_HOSTS. Bad Request: /PostContent/ [26/Mar/2022 19:03:05] "POST /PostContent/ HTTP/1.1" 400 68735
라고 뜬다.
'You may need to add '10.0.2.2' to ALLOWED_HOSTS.'라길래 이에 대해 찾아봤다
https://docs.djangoproject.com/ko/4.0/ref/settings/
http://vezi95.blogspot.com/2016/06/django-debug-false-allowedhosts.html
위 두 링크를 보면 settings.py 내에 있는 'DEBUG'와 'ALLOWED_HOST' 값을 10.0.2.2로 바꿔줘야 하는 것 같다
위 방식대로 바꾼 이후 정상적으로 클라이언트에서 서버로 이미지를 업로드하는 것에 성공했다
3.
플러터(다트)에서 함수의 매개변수를 정의할 때 대괄호([ ])를 넣으면
그 매개변수가 선택적인(optional) 매개변수가 되고
매개변수를 선언하지 않았을 때의 기본값을 정해줄 수 있다.
4.
장고에서 요청이 들어올 때(request)와 클라이언트로 응답을 할 때(response)
return 값으로 쓰일 수 있는 객체(기능?)에 관해 알아 봤다.
https://velog.io/@jcinsh/Django-request-response
어제 만들었던 마스크를 지우는 함수는 return 값을 리스트 두개로 내어주게 되어 있었는데
위 글을 보니 리스트 값이 아닌 JSON 값으로 넘겨줘야할 것 같다.
클라이언트에서 서버로 이미지를 JSON으로 만들어서 보내는 방법은 알겠는데
반대로 서버에서 클라이언트로 이미지를 JSON에 담아 보내는 것은 아직 모르겠어서 더 찾아봐야 할 것 같다.
1.
플러터 클라이언트에서 장고 백엔드로 연결을 하려는데 자꾸
'SocketException: OS Error: Connection refused, errno = 111'
라는 오류가 떠서 원인을 찾아봤다.
https://stackoverflow.com/questions/55785581/socketexception-os-error-connection-refused-errno-111-in-flutter-using-djan
위 링크를 보면 서버를 로컬에서 돌림과 동시에 클라이언트는 안드로이드 에뮬레이터로 테스트를 진행한다면
서버 주소(localhost 또는 127.0.0.1)을 10.0.2.2로 바꿔줘야 한다.