Web player cache


We're building a web player game that extensively use asset bundles loaded from a web server (from a CDN, to be precise).

How can I make the WWW class to issue an HTTP GET request with "If-Modified-Since" header, then either use the cached item if the response is "HTTP 304 not modified", or download the new version of the file? BTW, it's the way how all web browsers work.

I'm aware of the "version" argument of the LoadFromCacheOrDownload method, however versioning every asset bundle is complex and error-prone, and I'd love to have our content pipeline without it.

Thanks in advance!

You can set whatever headers you like on the request, and read the responseheaders (undocumented STILL) (code to follow)

var headers : Hashtable = form.headers;
headers["If-Modified-Since"] = "Sat, 29 Oct 1994 19:43:31 GMT";
var www = new WWW(url, form.data, headers);

yield www;

if (www.responseheaders["not-sure"] == "not-sure") // I'm not sure this will work for you

But see that might not work for you. I recall somewhere that status codes are not available via WWW, you'd either have to go to the HttpRequest (or something like that) class, or just get UniWeb from the asset store. I'd probably just do that, even though it costs, it would save a lot of time and trouble.