WWW.Post在编辑器中运行良好,但在WebPlayer构建中不起作用
以下是我对服务器的post请求:WWW.Post在编辑器中运行良好,但在WebPlayer构建中不起作用,post,web,unity3d,yield,unity-web-player,Post,Web,Unity3d,Yield,Unity Web Player,以下是我对服务器的post请求: public WWW POST(string url, string post) { var www = new WWW(url, Encoding.UTF8.GetBytes(post)); StartCoroutine(WaitForRequest(www)); while (!www.isDone && www.error == null) { Console.Write("downlo
public WWW POST(string url, string post)
{
var www = new WWW(url, Encoding.UTF8.GetBytes(post));
StartCoroutine(WaitForRequest(www));
while (!www.isDone && www.error == null)
{
Console.Write("downloading...");
Thread.Sleep(1000);
}
return www;
}
private IEnumerator WaitForRequest(WWW www)
{
while (!www.isDone && www.error == null) { yield return new WaitForSeconds(0.1f);}
// check for errors
if (www.error != null)
{
Debug.Log("WWW Error: " + www.error);
}
}
它在Unity编辑器中运行良好,但在Web播放器构建版本中冻结为无限循环。有人知道为什么吗?好的,问题出在协同程序中
public IEnumerator LoginFinished(string message)
{
string url = "URL";
Console.Write("Post on: " + url);
var response = _httpServer.POST(url, message.Substring(message.IndexOf('?') + 1));
while ( !response.isDone && response.error == null )
{
yield return new WaitForEndOfFrame();
}
Console.Write("response: " + Zlib.Unzip(response.bytes));
}
public WWW POST(string url, string post)
{
var www = new WWW(url, Encoding.UTF8.GetBytes(post));
StartCoroutine(WaitForRequest(www));
return www;
}
private IEnumerator WaitForRequest(WWW www)
{
yield return www;
if (www.error != null)
{
Debug.Log("WWW Error: " + www.error);
}
}
如果我这样做
StartCoroutine(LoginFinished("authdata"));
它工作正常。如果www.error不为null,循环将永远继续。有可能您正在运行与的冲突吗?while循环很好,因为isDone是and条件的一部分。你能在网络播放器中使用线程、睡眠和控制台吗?