【引擎】关于ccc对阿里cdn拉取资源问题解决。

我们在项目中,有时候总是拉取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的类似的方式修改就可以了。

我们也遇到了偶尔拉取失败的问题 楼主这种方式彻底解决了么

彻底解决了的。

最后是在js中XMLHttpRequest加入的User-Agent

xhr.setRequestHeader(‘User-Agent’, “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.81 Safari/537.36”);

这个get的时候添加的么

errorinfo里面返回的是什么 想知道大佬是怎么定位的,我们本地都没法重现,errorinfo看不到没法定位具体是不是这个问题,只是怀疑。