에러가 발생해서 고심하고 있었는데 해결책을 알려주신 분의 방법으로 해결되어서 기록합니다.
원인은 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만 넣어줘도 해결되었습니다.