0

我有一个我正在使用 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 编辑器上运行它,一切正常。我可以毫无问题地从我的服务器获得响应。如果我在 Android 上构建并运行它,请求不会发送到我的服务器,我也不会收到任何错误消息。上面运行的代码的最后一行是“yield return www.SendWebRequest();”

我查看了logcat,没有错误。我的服务器从来没有收到任何请求。但是,如果我戳“ https://www.google.com ”,我确实会得到回应。这让我相信这是某种 http 与 https 的问题,但我不知道从哪里开始。这段代码已经为我工作了很长时间。任何建议都会非常受欢迎!

4

1 回答 1

0

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

于 2019-05-02T14:55:25.237 回答