博主在进行Cocos小游戏的开始时,想要实现http请求。简单的用node.js在本地搭了一个服务器后,查询Cocos的官方文档以及网上搜索,都没有发现官方封装的API。
博主之前从事原生微信小程序开发以及uniapp开发,使用惯了方便快捷的requestAPI,以为这个是很简单的一个东西。结果Cocos官方并没有封装过http请求!也是走了很多弯路,手动封装了一下http请求(每次都使用原生Js写法真的很让人抓狂),这里写出代码和具体思路,供诸位参考。
一、Js原生http请求的实现介绍
首先,Js原生http请求是使用XMLHttpRequest实现的。虽然这个东东以XML为前缀,但是其实也可以进行JSON格式数据的传输。
const xhr = new XMLHttpRequest();//创建XMLHttpRequest示例对象
xhr.setRequestHeader('Content-Type','application/json');//设置请求头,用来适配json格式数据传输
xhr.open('POST',url,true);//初始化请求,设置请求方式,请求地址,是否异步调用
xhr.send(JSON.stringfy(params));//发送请求参数(请求参数是跟在url后面的一串字符串,如?name=张三&age=18)
值得注意的是,参数其实是不支持中文字符的,但是为什么我们传入name=张三也是合法的呢?原因是绝大多数浏览器会自动将中文字符进行转码,弄成%开头的一堆数字。原本我们也是需要在脚本里面使用encodeURI这个函数进行转码的&#x