00:00
呃,在前面这些部分呢,我们都是讲了APP模块如何去创建APP服务器,在接下来的部分,从这里开始,我们就开始讲如何使用at APP模块去发送请求啊,At APP模块呢,它不仅可以去创建这个ATP服务器,也可以使用它去发送这个请求,那它在呃,作为这个发送请求使用它的一些方法的时候,就有点类似于我们之前学过的啊,这个R贾啊,像这个HX啊fe等等啊,那接下来把这个例子也给大家啊写一写。我们来新建一个啊文件。这是test.gs啊,在这个里面来写我们的例子,先把这个给停掉,首先是第一个例子啊,使用ATP它的这个钙的方法来发送一个盖的请求啊。来复制一下给大家看一下啊代码代码呢比较简单啊,首先引入AP模块之后使用它的get的方法啊,那第一个。
01:00
Get方法,两个参数,第一个啊是我们传的一个选项啊,请求的这个域名,以及请求的一些路径等其他信息,第二个是一个回答函数啊,之前给大家介绍过我们note JS的回调函数,一般都是在最后一个参数,这个就是回调函数里面response就可以拿到我们啊请求这个域名得到的一个数据,然后我们来监听两个方法,一个监听一个data,就是获取数据的这么一个过程,暂后所有数据接收完毕之后啊,就会触发这个方法啊,然后我们在接收数据的过程中呢,不断的把接收的数据给连接到这个包里面,最后我们来呃,使用这个JS pass把这个包进行一个转换,转换成接S对象,最后我们打印了这个接对象啊代码呢比较简单。那接下来我们来,呃,执行一下啊。Note当前目录下的request.gs。啊,可以看到啊,这个就是我们打印的这个结果啊,我们请求的这个域名呢,它是一个API域名,它需要一些授权啊,因为我们没有添加这个授权,所以给了给了我们一些报错信息啊,就是说啊,说我们的这个地址不对什么的,但是数据确实是拿到了,对吧?啊大家想一想,我们在接收啊这个。
02:11
这个域名反馈过来的数据的时候,它可能会有很多数据,这个数据不是说一下子回来的,就一点一点回来,一点回来,所以呢,哎,我们把这个接收到这个数据呢,就不断的给他做一个拼接啊,最后再做一个转换啊。这是这个get请求啊,那我们通过这个格式,大家会发现比较像我们之前使用的这个阿贾克斯啊,或者说是这个XX都是比较类似的啊。啊。嗯,接着呢,我们再来看一个其他的这个例子啊,这个request的方法啊,Request的方法用于发送APP请求,它的使用格式如下啊,也是跟上面的格式很像,第一个参数就是option,就是我们的这个参数,第二个参数就是啊,靠back回调函数啊,然后这个option参数可以是第一个对象,也可以是一个字符串,如果是字符串的话呢,那我们就啊。直接是写一个URL啊,它内部的会自己去转换啊,如果是对象呢,可以支持这些哎值,比如说请求的这个host,它请求host name端点,以及这个本地的网络接口等等等等啊。
03:13
好,呃,这个参数大家用的时候看一下就可以了啊,然后它的回调函数是可选的啊,在这个response时间触发时啊,这个回调函数会呃触发一次,就是我们拿到这个数据,哎,拿到这个请求之后,响应数据之后,Response这个call back就会触发啊。我们来看一个啊,发送post请求的一个例子啊。来代码有点长,我就不写啦,然后我就整个。复制一下啊,复制一下。然后啊,这个get呢,给大家保留,我再来新建一个JS。啊,这一个post.gs把这个代码粘贴这里,然后代码虽然很长,给大家说一下就大家知道怎么回事了,那首先我引入了这个attps一个模块,那为什么引入ATPS呢?因为这个API啊,它必须得要求是APS请求才可以啊,所以我引入ATPS,那在这个笔记的最后给大家说备注了,如果你的这个地址是AB请求就支持的话,那就使用ATP就可以啊,否则的话,如果就是说呃,你的这个地址啊,就是说是必须得使用APS,那你就使用atps模块,它俩是用法是一样的啊,这个模块用法是一样的啊,那apps模块主要就是为来处理这个APS请求的啊。
04:26
啊,那接下来呢,我们在这里哎,准备了一个我们在发送这个ADV请求的时候要啊提供的提交的一些数据啊,然后使用的是query spring这个啊模块,这个模块呢,可以把我们的这个啊对象序列化成这个UR的形式,所以说吧,那为什么要用这个呢?啊,因为在帮我们把这个参数序列成UR形式之后,才能被这个API给更好的知识啊,因为如果我们的这个里面有一些特殊的字符,比如说这个空格啊啥的啊,你如果不经过这个转换,它会报错清说吧啊它的主要的目的就是把我们的参数给我们转成这个啊序列化成U2的形式就是啊,它然后等于它,然后再按的符连上它等于它,哎就是这种形式。
05:13
就是它的主要的一个作用啊,好接着呢,我们这里定义了一个option啊option哎,就是我们在发送请求的时候,呃,会把这个option给传过来,定了一些什么呢?请求的这个域名对吧?端口号,因为这个是TPS,所以它端口是443啊如果是你的是APP请求,那这个端口是八零明吧,好接着呢啊,我要请求的路径是什么?也就是我要请求这个域名下的啊这个路径。啊,那然后请求的方法是post接着写入的一些头信息啊,以及你这个content的这个长度啊,长度就是我们这个啊,Post data的Les啊接着啊,这是最关键的这个代码啊。Attv request啊,然后option一个是回调函数,当我们得到这个数据之后,这个回调函数就会触发,那在这个回调函数里面,我们打印了啊,这个状态码以及投信息啊,然后设置了编码,最后我们在这里面监听了一个data啊,这么一个事件啊,在这里面我们拿到这个包里面给我们,哎响应的这个data,然后在这里面还监听这个error,好,那为什么我们既然可以在里面监听,也可以在外面去监听这个error呢?
06:23
这是因为啊,它的执行结果啊,是一个clean的request的对象啊,所以我们可以使用它啊来进行这个error,以及最后把这个数据写入到成就题里面啊,最后使用这个N的方法去结束啊,那在笔记里面给大家这样在上面说一下AP request,它返回的是一个呃,Client request的实例对象啊,是一个可写的数据流啊,我们也可以通通过它去发送文件啊。好,呃,我们来执行一下这个例子啊,代码呢,已经简单给大家介绍完了,没有特别难以理解的,就是准备了一个请求的一个参数啊,准备了一个发送请求的一个参数,以及啊调用这个APS的request方法啊,把这个参数放进来啊,然后写个回调,在回调里面我们监听这个对车事件啊,那接下来我们来使用这样一个no的post。
07:12
来回撤。稍微等一下啊,执行速度有点慢啊,我们请求的这个地址呢,是这个地址啊,是这个地址,然后请求路径是这个啊,携带的参数呢,是这个参数,这个参数我们啊。呃,最终是。在这里面去写的啊,就是在这里面去写的啊,就是把我们的请求的这个参数啊,放到这里面去写的啊,最后结束这个啊,这是请求啊,可以看到这个请求的这个数据啊。状态码,我们打印的这个状态码是200对吧,然后呃,投信息,接着这个body,就是我们拿到这个数据啊,就是呃。我们在这里面。这给大家串一下行在这里面监听的这个data事件啊,就是拿到了这个body。
08:01
呃,返回了talking信息对吧,因为我请求的是一个登录的登录的接口啊,然后还返回了这个talking的这个类型,以及talking的过期时间啊,呃,大家看一看这个结构啊。啊,是不是特别像原生的阿贾克斯啊,我在这里去啊,使用right方法去这个放入这个参数对吧,然后最后使用这个end啊,如果是那个原生的阿贾克斯,最后这是一个呃,插码request的一个方法对不对?好,那通过这两个例子只是为了告诉大家,在使用它内置的这个at模块的时候啊,我们不仅可以使用at模块去创建这个服务器,也可以使用at模块去发送这个请求,诶,当然我们在实际的项目中,我们不会使用这个原生的,就很少使用原生的APP去发送这个请求的啊。呃,这个有点类似于什么,有点类似于我们很少去用原生的阿贾克斯去,呃,发送我们的网络请求,一般使用啊第三方封装好的,比如说是这个阿贾克斯啊,或者这个ix等等,对不对,或者是这个切块的阿贾克斯嘛,那我们在使用NOEGS的网络潜能工具的时候,一般也会选择使用一些第三方复制好的,因为它使用起来就这个,使用起来还是比较复杂的,你看我们写了好多代码,那如果使用一些第三方非常好的就会比较简单啊,使用起来就会比较的。
09:12
啊舒服啊,那是这个是关于这个例子啊。好,呃,这里给大家一个提示,就是说在这个上面的代码中,这个iqn必须被调用啊。因为只有调用了这个end,我们才表示啊,就是完成了这个ec请求啊,然后在发生。这个请求的这个过程中啊,如果有任何错误,都会在这个request的这个上触发这个error这个事件啊,就是我们这里监听这个error事件啊。好,那接下来呢,这个request方法给大家介绍完了,来介绍一下AP的server方法。Server方法呢啊,是用来创建一个服务器啊。那下面给大家准备的这个例子,就是一个呃,文件啊,管理的一个服务器。前面这两个啊,我们是比如说是匹配了这两个路由啊,会输出对应的一个内容,当我们请求其他的这个啊地址的时候啊,就会匹配对应的文件的这个类型啊取得这个文件的这个后缀之后,匹配文件的类型,哎,来设置不同的响应的这个type对吧?在这里响应不同的这个type,然后我们会在下面啊这里FS去读取这个对应的这个文件,读取了这个文件之后啊,我们把这个文件给输出,哎,如果是啊读取了这个啊,CSS啊,GS啊啊A等等,哎,都会做一个输出啊,我们把这个例子给大家看一下啊嗯,直接就复制下,就不给大家写代码啊等会给大家介绍一下这个代码,我们来新建一个serve server.gs。
10:41
啊server啊,把这个代码粘贴到这里,呃,来简单看一看啊。首先是引入ad模块啊,文件这个操作模块,然后在这里创建了一个服务啊,Create server啊创建了一个服务,那接下来呢。嗯。
11:00
就是。给大家稍微讲一下,我们直接呃使用这种方式创建的这个服务,下面的话就可以得到一个啊骚扰的对象,然后使用它的这个on方法去做一个呃监听啊,那之前我们在创建这个服务器的时候呢,比如说点DS,我们是直接使用的是啊create server啊,那server呢,是通过接收一个回调函数啊,在这里面去写我们的这个啊,要想应这些内容对吧?好,但是我们如果直接去使用这个serve方法的话啊,就是通过这个new去创建的这个serve server对象,那么的话要使用这个on去监听我们的这个请求啊,监听这个request这个事件啊。这是,呃,虽然他们的效果是一样的,但是他们的写法不一样,这大家要注意啊。啊,接着看我这个代码,呃,首先是使用。这个呃,URL模块啊,那这个UR模块呢,它就是这个例子,没有直接在上面提前准备好UR模块,而是直接去用的时候啊再去。这个使用哎,都是一样的啊好,然后嗯,如果大家不太好理解,那这里我就这样去写啊。
12:07
嗯。URL加个下划线,然后在这里我们来定一下。哇,URL这就是一个变量啊,大家怎么定义都可以,然后我们使用这个UR模块的pass方法来把请求的这个urr进行一个啊。转化啊,转换之后得到它的这个pass name,然后去判断它pass nameme,如果是test的一啊,这个就没啥说的,直接就输出哈,那如果你的pass name是test斜杠二啊。T加二呢,我会输出你的这个请求的方法,请求的地址啊,以及这个请求的这个服务的版本等等啊,最后还会把你的图信息给做一个输出,哎,跟第一个差不多,就输出的就说返回的东西多了一些,好,然后还监听了date以及N的这个事件。那其他的情况下,就看你请求了什么文件名,我就去哎去读取对应的文件名,那这里一个Switch呢,是根据你文件的这个后缀啊,我去设置不同的这个temp啊,因为我们在响应的时候,要给这个头信息里面设置这个响应的类型对不对。
13:10
这里呢,就开始去读取这个文件,然后设置上对应的响应的这个类型啊。然后呃,如果读不到这个文件,就是出错的情况下,就会告诉呃这个把错误的原因给返回回去,如果正常的能读到文件,就把文件的内容给。呃,返回回去啊,我们来看一下这个例子啊,执行一下no的。Server啊,等于GS,好,接下来继续啊,访问我们的8080好。嗯,应该不是八零吧,我们这个监听的是多少,这个端口看上面啊,啊监听的是八零啊,我们把它改成8080吧。重新执行一下啊。呃,一定要啊,这边监听的端口号和你浏览器中访问的端口号是一致的啊,你改哪个都行啊,刚才的情况你改浏览器也可以啊。这是不是又把错信息给我,给我们返回来了,没有这个文件或目录对不对,那是不是就走到了这个else里面,他去读取这个文件的时候就没有读取到,那当然读取不到,我们是什么也没给。
14:09
对吧,我们先看一个情况来看,先看我们这个test啊,斜杠一的情况下,Test斜杠一哎是不是哈,那test斜杠二是不是给我们返回的信息多了一些。对吧,啊。然后是把这个,嗯。状态码,然后请求的这个方法URL以及这个版本,然后所有的头信息是不是都给我们了啊,大家如果你仔细观察的话,你看这个数据格式是不是比较比较眼熟,我们打开我们的这个。哎,开发者工具找到network这里我们来刷新一下啊,把这个改成all啊,看一下我们这个请求,你会发现这个格式啊,和这个是比较相的啊,可以看到和这个。和这个格式是比较像的啊,当然信息可能没有没有它多啊。但这个request头信息都是都是有的啊,然后这个请求的这个地址,Host在这里面啊,请求的这个地址,然后这个方法以及这个啊域名啊都有。
15:10
好,这是TEXT2的情况,那接下来我们来测试一下文件的情况,比如我来请求index.html,诶,是不是就拿到了这个内容?对不对,这个时候就呃,路径匹配的话,匹配不到它,也匹配到它,得到了else else,我们获取这个文件名,文件名呢,哎,我们就得到了这个index a台面,接着我们来匹配这个文件的后缀,后缀匹配到的是这个A台面啊,最终我们把这个类型设置成TA台面,然后这个tap呢给到了谁?给到了啊,这里在呃,设置这个小象头的时候啊给的啊,那接着呢,就是使用这个FS文件模块去读取这个文件,读取到这个内容,如果读取不到就返回404啊,就是找不到啊,找不到这个文件,那如果能读取到内容,就把这个内容做一个返回。啊,可以看到啊,有这样一个结果啊,那接下来呢,呃,我们再来进行一下改造,我们复制一个index台面二啊,改成这个A点台面二,然后在这里面我们来写一个。
16:11
啊啊。Script,然后src,哎,跟目录下的index。啊,根下的a.GS吧,好,我们在这个A点下面里面又引,就是说使用script去请求这个啊a.GS啊,那在这个a.GS呢,我们来新建一个。a.GS在这里面我们来,呃,Conslo一下啊,CONSLO1好。那。接下来我们再来访问一下这个a.a time啊,在访问这个a.a time的时候,它会请求这个a.S啊,我们来看看这个a.GS有没有正常的能请求到啊,找到我们的countrl这里,接下来诶访问这个a.HT2可以看到是不是GS也能正确的读取,通过这个网络network网络请求我们可以看到H,它那能正常到访问到对吧?那这个GS也能正确访问到对不对,那这是因为我们在向这个地址去请求这个a.GS的时候,同样我们这里这个else发挥了这个作用,哎,它去匹配这个GS,然后诶把这个类型就是从这个GS就给我们返回了,那这这个就是一个啊进就是一个很简单的一个。
17:25
啊,服务器的一个模型了啊,包括我们对这个文件的支持啊,对各种文件的一个支持啊。都是可以的啊。呃,然后呢,当然这里面现在没有支持呃这个图片等其他资源,哎,如果是呃要支持图片的话,我们俩还可以继续,哎,再写一些判断啊。嗯,当然图片的话,因为它是这个读取到的是一个二进制的一个情况,所以呃就不太呃适合这个方法啊,不太适合这个方法,还要做一些判断才可以啊,这个可以呃大家自己练习一下,那这是关于呃这个server这个方法的一个应用啊,创建了一个服务器的一个这么一个实例啊。
18:02
好呃,使用这个listen方法呢,它有这么几种方式啊啊这种啊,然后呃,指定这个IP,或者说是通过这个对象的方式都是可以的啊,我们一般直接就使用呃,这个函数的形式就是两个参数就可以了啊。啊,一般我们用第二种方式用的多一点,这三种方式都可以的啊。呃,在最后一个例子里面给大家讲解了如何我们自己去搭建这个APS服务器啊,APS服务器呢,是要有这个SL证书的,那如果是对外提供的公这个公共的这个服务网站,我们需要向这个呃证书的颁发机构,比如说CA啊去购买这些证书啊,然后我们自己用一些网站就可以自己使用这个open SL去创建啊,下面去创建的命令啊,会生成两个文件啊,然后使用这个内置的这个APP字模块去创建这个server,指明这个我们的这个呃私钥以及这个公钥啊,以及这个CA证书。嗯,之后就都是一样的了,之后都是一样的了。
19:01
嗯,那这个例子呢,就不给大家演示了,关于这个AP模块我们已经讲了很多了,讲到这里大家知道它是做什么的就可以了,它主要两个作用,一个是可以创建服务器,再一个是可以使用它的request方法去呃发送这个请求啊,主要是这两个作用啊,好,那这小节先到这里。
我来说两句