很多网站都会做防盗链处理
- 我们请求使用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();