在HTTP服务器上对UnityWebRequest的响应无响应

时间:2019-05-01 17:42:27

标签: android http unity3d https unitywebrequest

我有一个使用Unity构建的Android应用程序,该应用程序将信息记录在简单的python http服务器(位于Digital Ocean Droplet上)上。这是我用来刺探服务器的协程:

IEnumerator pokeServer()
{
    Debug.Log( "Establishing Server Connectivity..." );
    using( var www = UnityWebRequest.Get( ServerURL ) )
    {
        Debug.Log( "Send Web Request" );
        ServerStatus = ConnectionStatuses.AttemptingToConnect;
        yield return www.SendWebRequest();

        if( www.isNetworkError  ||  www.isHttpError )
        {
            if( www.isNetworkError )
            {
                Debug.Log( "NETWORK ERROR: " + www );
            }
            else
            {
                Debug.Log( "HTTP ERROR: " + www );
            }
            ServerStatus = ConnectionStatuses.Unavailable;
        }
        else
        {
            Debug.Log( "Success!  Server available!" );
            ServerStatus = ConnectionStatuses.Connected;
        }
    }
}

如果我在Unity Editor上运行此命令,则一切正常。我可以从服务器获得响应而没有任何问题。如果我在Android上构建并运行此程序,则该请求不会发送到我的服务器,并且不会收到错误消息。上面运行的代码的最后一行是“ yield return www.SendWebRequest();”

我看过logcat,没有错误。我的服务器从未收到任何请求。但是,如果我戳“ https://www.google.com”,则的确可以得到响应。这使我相信这是http vs https的问题,但是我不知道从哪里开始。这段代码为我服务了很长时间。任何建议都将非常受欢迎!

1 个答案:

答案 0 :(得分:0)

我一直在使用宾夕法尼亚大学无线网络的这款电话。事实证明,我可以从台式机发出http请求,但不能通过电话发送。我把其中一台设备带回家,并通过我的个人wifi尝试了一下,一切正常。