当前位置: 首页 > news >正文

哪个网站做学历认证品牌营销策略论文

哪个网站做学历认证,品牌营销策略论文,多少钱怎么翻译,机构网站建设需要交费吗引子 最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习 简述 Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviou…

引子

最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习

简述

Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviour 类,可以在 Unity 的场景中创建一个 GameObject,并将 UnityWebRequestQueue 挂载到这个 GameObject 上,就可以在该场景中使用了。

Unity的WebRequest模块将网络请求封装成了一个队列,按照发送请求的先后顺序进行处理。当一个请求被添加到队列中后,WebRequest会判断当前是否有正在进行的请求,如果有,则将请求添加到等待队列中,等待正在进行的请求结束后再发送。如果没有正在进行的请求,则直接发送请求。当一个请求结束后,WebRequest会从等待队列中取出下一个请求进行发送。

GET 请求队列

GET 请求队列的核心代码如下:

public class GetRequestQueue : MonoBehaviour
{private Queue<UnityWebRequest> webRequestQueue = new Queue<UnityWebRequest>();void Update(){if (webRequestQueue.Count > 0){UnityWebRequest webRequest = webRequestQueue.Peek();if (webRequest.isDone){string responseText = webRequest.downloadHandler.text;Debug.Log(responseText);webRequestQueue.Dequeue();}else if (webRequest.isHttpError || webRequest.isNetworkError){Debug.Log(webRequest.error);webRequestQueue.Dequeue();}}}public void AddRequest(string url){UnityWebRequest webRequest = UnityWebRequest.Get(url);webRequestQueue.Enqueue(webRequest);StartCoroutine(webRequest.SendWebRequest());}
}

这个类定义了一个 Queue 对象 webRequestQueue 来缓存所有 GET 请求。在 Update 方法中,每次检查队列是否有请求,如果有请求,就取出队列中的第一个请求,并启动协程将这个请求发送出去。如果请求完成,则将请求从队列中删除,否则如果请求出错也将请求从队列中删除。

你可以将 AddRequest 方法暴露在其他类中,用于向 GET 请求队列中添加请求。如下所示:

public class GetRequestDemo : MonoBehaviour
{public string url = "http://localhost:8080/get";private GetRequestQueue getRequestQueue;void Start(){getRequestQueue = GameObject.Find("GetRequestQueue").GetComponent<GetRequestQueue>();}void OnGUI(){if (GUI.Button(new Rect(10, 10, 100, 50), "Send GET Request")){getRequestQueue.AddRequest(url);}}
}

在这个例子中,我们定义了一个 GET 请求的 Demo 类,当用户点击按钮时,调用 AddRequest 方法将请求添加到队列中。

POST请求队列

POST 请求队列的实现与 GET 请求队列类似,主要区别在于我们需要为 POST 请求添加请求体。下面是 POST 请求队列的实现代码:

public class PostRequestQueue : MonoBehaviour
{private Queue<UnityWebRequest> webRequestQueue = new Queue<UnityWebRequest>();void Update(){if (webRequestQueue.Count > 0){UnityWebRequest webRequest = webRequestQueue.Peek();if (webRequest.isDone){string responseText = webRequest.downloadHandler.text;Debug.Log(responseText);webRequestQueue.Dequeue();}else if (webRequest.isHttpError || webRequest.isNetworkError){Debug.Log(webRequest.error);webRequestQueue.Dequeue();}}}public void AddRequest(string url, string requestBody){UnityWebRequest webRequest = UnityWebRequest.Post(url, requestBody);webRequestQueue.Enqueue(webRequest);StartCoroutine(webRequest.SendWebRequest());}
}

这个类定义了一个 Queue 对象 webRequestQueue 来缓存所有 POST 请求。在 AddRequest 方法中,我们使用 UnityWebRequest.Post 方法创建一个 POST 请求,并将请求体 requestBody 传递给该方法。

同样的,你可以将 AddRequest 方法暴露在其他类中,用于向 POST 请求队列中添加请求。如下所示:

public class PostRequestDemo : MonoBehaviour
{public string url = "http://localhost:8080/post";public string requestBody = "{\"key\": \"value\"}";private PostRequestQueue postRequestQueue;void Start(){postRequestQueue = GameObject.Find("PostRequestQueue").GetComponent<PostRequestQueue>();}void OnGUI(){if (GUI.Button(new Rect(10, 10, 100, 50), "Send POST Request")){postRequestQueue.AddRequest(url, requestBody);}}
}

在这个例子中,我们定义了一个 POST 请求的 Demo 类,当用户点击按钮时,调用 AddRequest 方法将请求添加到队列中,并将请求体 requestBody 传递给 AddRequest 方法。

注意

在队列中,WebRequest支持设置最大并发数,即同时能进行的最大请求数。当队列中的请求数达到最大并发数时,新的请求会被添加到等待队列中,直到有请求结束后再进行发送。这样可以保证不会过度的进行网络请求,避免出现网络拥堵等问题。

Unity的WebRequest模块的网络请求队列原理就是将请求封装成队列,并按照先进先出的原则进行处理,支持设置最大并发数,保证并发请求的数量不会过度,避免出现网络拥堵等问题。

http://www.tj-hxxt.cn/news/20161.html

相关文章:

  • asp动态网站开发课后答案宁波seo快速优化教程
  • 做蛋糕需要建议网站不附近广告公司
  • h5网站开发流程打开百度一下的网址
  • 专业建站公司收费标准搜索引擎平台有哪些
  • 数据交易网站开发全网搜索关键词查询
  • 设置wordpress文章图片不显示系统优化工具
  • 杭州拱墅区做网站河南网站seo
  • asp网站助手seox
  • 有视频接口怎么做网站网络营销做得好的酒店
  • 常州模板网站建设信息百度知道网页版
  • 江西做网站找谁哪些平台可以发布软文
  • 办公厅政府网站建设营销软文300字
  • 招聘网站建设需求2023近期舆情热点事件
  • 书亦烧仙草网络营销方式seo站长平台
  • 做网站开发的公司优化大师官网入口
  • 上海市建设工程质监站网站seo引擎优化外包公司
  • 中国工程建设企业协会网站最热门的短期培训课程
  • 网站架构变迁网站出售
  • 网站制作整个的流程是什么十大少儿编程教育品牌
  • 做网站多少钱西宁君博专注如何提高关键词搜索排名
  • 自己切片视频做网站双11销量数据
  • 旅游网站怎么用dw做seo网站优化软件
  • dw怎么做音乐网站网络推广靠谱吗
  • 什么是网站静态化合肥网络推广优化公司
  • diango做的网站怎么用免费软件下载网站有哪些
  • 泰州网站快速排名优化推广的软件有哪些
  • ie的常用网站湖南网站优化
  • 局域网如何做视频网站建设网络销售模式有哪些
  • 北京专业网站制作公司管理方面的培训课程
  • 有没有做企业网站的保定网站制作