본문 바로가기
프로그래밍/debug

flutter 에뮬레이터, Image.network에서 403 에러날때

by 데일리파이 2024. 2. 29.
반응형

403 error
403 error

 

에러가 발생해서 고심하고 있었는데 해결책을 알려주신 분의 방법으로 해결되어서 기록합니다.

원인은 flutter에서 따로 User-Agent 값을 추가하지 않으면 기본값으로 `(dart:io)` 가 들어가게 되어 생기는 것이었습니다.

 

참고 ->

https://api.flutter.dev/flutter/dart-io/HttpClient/userAgent.html

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

 

userAgent를 추가하면 해결되는 문제로 아래와 같이 추가하였습니다.

 

방법 1

 

child: Image.network( 이미지 경로,

headers: const {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",}, ),

 

방법 2

방법 2. (global override)

// [main.dart]

 

class MyHttpOverrides extends HttpOverrides {

@override

HttpClient createHttpClient(SecurityContext? context) {

return super.createHttpClient(context) ..userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'; }

}

void main() {

HttpOverrides.global = MyHttpOverrides();

runApp(const App()); }

 

class App extends StatelessWidget {

const App({Key? key}) : super(key: key);

 

@override

Widget build(BuildContext context) {

return MaterialApp(

home: HomeScreen(),

);

}

}

IOS의 경우 

Image.network(

webtoon.thumb,

headers: const {

'Referer': 'https://경로', }, ),

 

Referer만 넣어줘도 해결되었습니다.

 

반응형