我们在项目中,有时候总是拉取CDN资源是老资源的问题,也偶尔拉取失败。
与阿里售后几番沟通后,确定请求一直没有到CDN那边,极有可能是被劫持掉了。
目前解决的防范就是,在http加入user-agent信息。
需要修改 build/jsb-default/frameworks/cocos2d-x/cocos/network/CCDownloader-apple.mm line 257
在这个方法中
-(NSURLSessionDownloadTask *)createFileTask:(std::shared_ptr<const cocos2d::network::DownloadTask>&) task
加入下列代码
NSMutableURLRequest *mutableRequest = [request mutableCopy];
[mutableRequest addValue:@"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36" forHTTPHeaderField:@"User-Agent"];
request = [mutableRequest copy];
安卓和curl的类似的方式修改就可以了。