이 글은 플러터에서 api를 받아올 때 발생하는 403 에러를 해결하는 방법에 대해 정리한 글이다.
이 글은 노마드 코더(Nomad Coders)님의 [Flutter로 웹툰 앱 만들기] 강의를 보며 진행하는 과정에서 발생한 이슈에 대해 정리하였습니다.
https://nomadcoders.co/flutter-for-beginners
Flutter 로 웹툰 앱 만들기 – 노마드 코더 Nomad Coders
Flutter for Beginners
nomadcoders.co
문제점
api를 요청할 때, 위 이미지와 같이 403 에러가 발생하였다.
일반적으로 403 에러는 서버가 클라이언트의 접근을 거부할 때 발생하는 http 응답 코드이자 에러 코드이다.
해결 방법
user-agent
값을 추가해주는 것으로 해결할 수 있다. (이전에 playwright에서 발생했던 문제도 동일하게 user-agent
값을 추가해주는 것으로 해결할 수 있었다.)
필자가 공부 중인 코드에서는 아래와 같이 headers
를 통해 user-agent
값을 추가할 수 있었다. (플러터에서 제공하는 위젯이나 빌더의 종류에 따라 넣는 방식은 달라질 수 있다.)
...
Image.network(webtoon.thumb, headers: const {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}),
Text(webtoon.title),
...
user-agent
값은 브라우저의 검사 > Network에서 찾아볼 수 있다.
이렇게 user-agent
를 추가하면 정상적으로 실행되는 것을 확인할 수 있다.