我有一个WWW类,每次使用相同的url调用 GetData 函数时都会创建该类。
现在当我运行它时,第一次 GetData 函数正在调用正在请求的url(我在webservice中有一个断点)。 然后其他时候调用Get Data并且WWW实例化,它在没有发出请求的情况下填充数据(我的服务中的断点未被命中)。
但我想在每次调用GetData时都进行一次新调用。 (要审核网络服务)
我如何启用此类行为?我究竟做错了什么? 提前致谢!
void Start () {
InvokeRepeating("GetData", 1.0f, 1.0f);
}
void GetData()
{
WWW www = new WWW(url);
while (!www.isDone && string.IsNullOrEmpty(www.error))
{
}
www.Dispose();
}
答案 0 :(得分:2)
您没有正确使用协程。实际上,您的代码段通常被视为错误的实现。你会把程序卡在循环中直到完成。
void Start () {
InvokeRepeating("GetData", 1.0f, 1.0f);
}
void GetData()
{
StartCoroutine(GetDataCoroutine())
}
IEnumerator GetDataCoroutine()
{
WWW www = new WWW(url);
yield return www;
if(string.IsNullOrEmpty(www.error) == false){ Debug.Log(www.error); }
www.Dispose();
}
答案 1 :(得分:0)
问题在于数据是以某种方式兑现的。 我解决了这个问题:
WWW www = new WWW(url + "?t=" + Random.value);
这样每次我创建一个新的WWW时,我也会使用a创建一个新的请求 不同的网址(仍然调用相同的功能)。
最好完全关闭WWW请求的兑现。但这也有效。