Любое постоянное решение этой ошибки "Скачать по http, пожалуйста, рассмотрите возможность обновления до https" в Unity? - PullRequest
0 голосов
/ 04 мая 2019

Попытка загрузить два разных файла на внутренний сервер. Один - файл .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 ");

        }


    }
}

1 Ответ

2 голосов
/ 04 мая 2019

Вы используете протокол HTTP (http:// в начале вашего URL).Apple применяет все виды случайных политик, одна из которых заключается в том, что вы должны общаться через HTTPS, безопасную версию HTTP.Попробуйте изменить ваши URL-адреса на https.Если сервер, к которому вы подключаетесь, поддерживает их, отлично.В противном случае вам нужно будет сделать сервер безопасным для https, получив сертификат HTTPS и установив его на свой сервер (если он ваш; в противном случае вам не повезло).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...