UnityWebRequest не вызывает сервер

#networking #unity3d

#сеть #unity3d

Вопрос:

У меня есть код для использования UnityWebRequest для вызова веб-сервера. Отладка показала, что он даже никогда не вызывает сервер и всегда возвращает 0 байт. Я подключил отладчик к своему серверу и вижу, что он не вызывается.

Даже пытался позвонить в Google и все равно получил пустой результат. Эти тесты были выполнены из редактора Unity.

Есть ли что-то, что мне нужно включить, прежде чем я смогу использовать сетевые библиотеки?

 void Awake() {
        StartCoroutine("CallWebserverCR");
    }

    IEnumerator CallWebserverCR()
    {
        UnityWebRequest www = UnityWebRequest.Get("http://www.google.com");
        yield return www.Send();

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log(www.downloadHandler.text);
            byte[] results = www.downloadHandler.data;
        }
    }
  

Комментарии:

1. Однако использование этого в сопрограмме работает: WWW www = new WWW(server usersUrl); yield return www; if (www.error != null) { Debug.Log(www.error); } else { Debug.Log(www.text); }

Ответ №1:

Единственное различие, которое я вижу между вашим кодом и примером Unity, заключается в том, что у них есть оператор «using»:

 IEnumerator GetText() {
    using(UnityWebRequest www = UnityWebRequest.Get("http://www.my-server.com")) {
        yield return www.Send();

        if(www.isError) {
            Debug.Log(www.error);
        }
        else {
            // Show results as text
            Debug.Log(www.downloadHandler.text);

            // Or retrieve results as binary data
            byte[] results = www.downloadHandler.data;
        }
    }
}
  

Комментарии:

1. Спасибо за ваш ответ. Я чувствую себя настоящим инструментом, но по какой-то причине все только начало работать, когда я переключился с WWW на UnityWebRequest, запишите этот вопрос как PEBKAC