Fluter 网络请求图片403 防盗链处理解决办法

发布时间 2023-12-13 10:29:34作者: vx_guanchaoguo0

很多网站都会做防盗链处理

  • 我们请求使用flutter 请求是403
  • 浏览器请求是正常的

原因

  • 在判定了用户的请求头 user-agent

处理办法

  • 去掉原有的请求头
  • 使用浏览器的请求头

修改源码





 assert(key == this);

      final Uri resolved = Uri.base.resolve(key.url);

      // _httpClient.findProxy = (uri) {
      //   return "PROXY 127.0.0.1:8888";
      // };
      final HttpClientRequest request = await _httpClient.getUrl(resolved);
      request.headers.remove("user-agent", "Dart/3.2 (dart:io)");
      request.headers.add("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");


      headers?.forEach((String name, String value) {
        request.headers.add(name, value);
      });
      final HttpClientResponse response = await request.close();