我有一个使用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的问题,但是我不知道从哪里开始。这段代码为我服务了很长时间。任何建议都将非常受欢迎!
答案 0 :(得分:0)
我一直在使用宾夕法尼亚大学无线网络的这款电话。事实证明,我可以从台式机发出http请求,但不能通过电话发送。我把其中一台设备带回家,并通过我的个人wifi尝试了一下,一切正常。