问题描述
我想从服务器上获取某种文件的长度,例如:.mp4,.xml,.png和自定义文件类型.500!
我用C#代码统一打印长度:
public class Tmp_ContentLength : MonoBehavIoUr {
public List<string> urls = new List<string> ();
void Start () {
for (int i = 0; i < urls.Count; i++) {
print (urls[i]);
StartCoroutine (GetFileSize (urls[i],(size) => {
print ("File Size::> " + size);
}));
}
}
IEnumerator GetFileSize (string url,Action<Int32> result) {
UnityWebRequest uwr = UnityWebRequest.Head (url);
yield return uwr.SendWebRequest ();
string size = uwr.GetResponseHeader ("Content-Length");
if (uwr.isNetworkError || uwr.isHttpError) {
print("Error While Getting Length: " + uwr.error);
if (result != null)
result (-1);
} else {
if (result != null)
result (Convert.ToInt32 (size));
}
}
}
使用检查器中的真实Urls填充网址字段。
因此,我可以在统一编辑器中获取所有文件的长度,但是当我导出.apk并运行它时,我将获得.mp4和.png的打印结果,而不是.xml和.500(我的自定义文件类型)的打印结果。
1-有什么问题吗,或者我错了? 2-如何为.xml和自定义文件类型启用Content-length标头? 3- unity编辑器和android在获取Content-length方面有什么区别?
最诚挚的问候,对于英语不好,我们深表歉意!
解决方法
所以,一遍又一遍!我发现我们需要在服务器上禁用 gzip ,并使用 .htaccess 文件