Попытка загрузить два разных файла на внутренний сервер. Один - файл .json, а другой - файл .worldmap. Когда я загружаю, я получаю эту ошибку в отладке " Вы используете загрузку по http. В настоящее время Unity добавляет NSAllowsArbitraryLoadsв Info.plist, чтобы упростить переход, но он скоро будет удален. Пожалуйста, рассмотрите возможность обновления до https. Общая / неизвестная ошибка HTTP"Я заметил, что иногда эта ошибка появляется, а иногда нет. Из этого решения Link решение состоит в том, чтобы добавить UnityWebRequest. Я использовал это, но все равно он продолжает появляться. Что-нибудь связанное с моим кодом, веб-адресом или слишком большим количеством http-вызовов из моего кода?
public void UploadMaps()
{
StartCoroutine(UploadFileData());
StartCoroutine(UploadWorldMap());
}
IEnumerator UploadFileData()
{
string mapnamedl = "pathtest";
Debug.Log("Mapname local = " + mapnamedl);
string locapath ="file://" +Application.persistentDataPath + "/" + mapnamedl + ".json";
Debug.Log("local path = " + locapath);
WWW localFile = new WWW(locapath);
yield return localFile;
if(localFile.error==null)
{
Debug.Log("Local file found successfully");
}
else
{
Debug.Log("Open file error: " + localFile.error);
yield break; // stop the coroutine here
}
Debug.Log("Form bytes = " + BitConverter.ToString(localFile.bytes));
List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
formData.Add(new MultipartFormDataSection("Jsondata",localFile.bytes));
UnityWebRequest www = UnityWebRequest.Post("http://testsite.com/cab/test/save.php",formData);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
string JSONDATAstring = www.downloadHandler.text;
Debug.Log("Json String is = " + JSONDATAstring);
JSONNode JNode = SimpleJSON.JSON.Parse(JSONDATAstring);
string login = (JNode["upload"][0]["success"]).ToString();
Debug.Log("login is = " + login);
if (login == "1")
{
Debug.Log("Form upload complete!");
}
else if (login == "0")
{
Debug.Log("Failed ");
}
}
}
IEnumerator UploadWorldMap()
// IEnumerator UploadFileData(string mapnamedl)
{
string mapnamedl = "pathtest";
Debug.Log("Mapname local = " + mapnamedl);
string locapath = "file://" + Application.persistentDataPath + "/" + mapnamedl + ".worldmap";
Debug.Log("local path = " + locapath);
WWW localFile = new WWW(locapath);
yield return localFile;
if (localFile.error == null)
{
Debug.Log("Local file found successfully");
}
else
{
Debug.Log("Open file error: " + localFile.error);
yield break; // stop the coroutine here
}
Debug.Log("Form bytes = " + BitConverter.ToString(localFile.bytes));
List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
formData.Add(new MultipartFormDataSection("Jsondata", localFile.bytes));
UnityWebRequest www = UnityWebRequest.Post("http://testsite.com/cab/test/save.php", formData);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
string JSONDATAstring = www.downloadHandler.text;
Debug.Log("Worldmap String is = " + JSONDATAstring);
JSONNode JNode = SimpleJSON.JSON.Parse(JSONDATAstring);
string login = (JNode["upload"][0]["success"]).ToString();
Debug.Log("Worldmap login is = " + login);
if (login == "1")
{
Debug.Log("Form upload complete!");
}
else if (login == "0")
{
Debug.Log("Failed ");
}
}
}