00:00
刚才呢,我们讲了这个,哎,我们觉得有了这个之后啊,我们开发的程序比以前简单了好多,但是呢,这个还还不完全,为什么说还不完全呢?比方说我在service维方法里边,我有这样的一个需求想哎获取,比方说啊获取请求方式。是是盖还是。比方说有这么一个需求,我会怎么办呢?所以说获取请求方式是不是得到request的方法呀?request.get method了吧,发现根本就没有这个方法,为什么呢?
01:02
因为。呃,是get请求还是posts请求?这个是HTTP协议所特有的,那我先需要把service转为http service request,我先需要把这个request转为http service request,就是说我需要这样转一下,等于然后写,然后再来写method,等于这个GDP request。然后这。太麻烦了,为什么呢?因为我得在每一次我要是用http service request,或者或者是httv service response方法的时候,我都需要进行一个强转发,所以说虽然说我们这个跟已经挺好了哈,但是还不够好。
02:04
我希望怎么样呢?我们希望我能够直接在这个service方法里面得到啊,Http service request跟http service response,你直接用HTTP相关的方法,那于是我就可以来创建这样的一个类叫。HTTP。Request my http OK,这里是谁呢?这里是我刚刚定义的MY,好了这样写,这样写完之后这个情况是个什么情况呢?这么一个情况,现在的实际上你看我这个名哈,我这个是针对于APP协议定义的这样的一个类,来针对于HTTP。
03:01
协议定义的。一个类的一类,就是说后边我要是再来写一些这个,嗯,Service的话呢,写一个http service的话呢,我们可以在这个基础上进行扩展,于是既然是针对于他的,我怎么写呢,我这样写。说你不就是他吗?先判断一下20OF http。走了,跟这个一样啊,强转了。底告。请注意我们服务相ttp。
04:05
好,再来,再来什么呢?说etp跟他一样的话,那我就来。等于211没有提示。不是上成功,然后怎么了,然后的话呢,我给你写一个什么,我直接把这个request response进去。但这个service需要自个定义一个service啊,这个定义的方式差不多CTRLC过来,Ctrl a crl,只不过这个需要改成这个类型,这个需要改成。
05:02
这好了。It's a house。OK,这个B拔掉行了,点它到这来,这个时候你要再复写的话呢,我复写这个不简单。还没完。我们还可以继续优化,那请求主要是分为get请求跟cos请求,于是我来干什么呢?获取。请求方式。然后呢,根据请求方式再放进对应的处理方法再调用吧。好了,获取一个method等于request.get method,然后看if说有可能是get请求equals ignore case什么意思啊?对,要写是不是相等?
06:14
MY,要是这样的话呢,我就去教一个方法,叫do,我传request,再传response control 1ok,异常照抛不误,也是这两个异常。好了,那再写if,如果是post请求的话,最常用的就这两个请求哈,POS请求的话,Equals。如果是,那我这个时我去方法request上去。
07:02
OK ctrl一来这两个变成。可以变成怎么样?做一个括号啊,OK,我可以根据需要来干什么呀,来复写对应的do get或者是do post的方法,那我这个方法还可以变得更加的简洁,怎么样呢?我就不用再去招惹这个service了,怎么写啊,我先写一个版本啊,这样去。不吧,可以这么整,我直接译成字TP。然后呢,我地方款不要了。
08:00
我直接过来。RXL直接覆盖你是什么?求啊求啊。哦,我自己的来你好。保存,后来已经改过来了。Myp OK request写错了,写写错了啊,不应该叫request。记住了没有他。好,回来好了,我可以去覆盖do post方法,CTRLDCTRLD,注意看,注意看,这个时候我来的这个什么呀,我来的这个参数是不是request response,是不是都是HTP类型的呀,于是爽啊。
09:16
CTRL的F是不就不用转了呀,就可以直接。不用了。你看这个时候的话呢,这个代码变得更加的简单框。一场麦。哎啊,这个忘这个忘复制了啊,自己一张一条保存OK。异常。L异常to post myttp,哦,这个时候这个方法我的异常刚才是不是没抛啊抛就可以了,R1加上行了,这个时候代写的话呢,这个方法会变得更加的简单,那我们实际上开发时候用的恰恰是。
10:22
这个看一下,这个叫http service,我们来看一下这个源代码。TP,那它就可以,我们看方式的话呢,最常用的包,我们基本上用的就是do get跟to post,那实际上还有delete head options put trees这种请求方式,但实际上用的就是get跟post,我们看这里边方法的具体实现怎么实现的,找到outline。
11:07
过来。好了,我们看方法,看什么呢?构造器空的。Service。这个service的话呢,已经是转完之后的了哈,还应该有一个最原生的service啊,这是原生的service,看request response是不是直接就是强转啊。做完墙转之后,如果转换出异常的话,抛了一个异常嘛,大家看这个时候用异常的方式代替我们前面那个if else,是不是这个代码要要干净一些啊,我们当时我们怎么写的,我们写的一个异步判断,又写了一个异步判断吧,看用异常写的这个代码更加的干净,直接调用这个service,这个service就是它,它然后的话呢,先获取请求方式,看它是get的方式,调用do get的方法,然后找post方式,调用do的方法,我们找啊post,诶post方式直接调用方法点一下,这里边的话呢,有点东西可以写。
12:12
有点东西我们那个是空的,但是大同小异,这就是我们的HTTP,算来说一下,它就是我们找了半天是吧,终于到。关于我们到底了,首先一是一个,这是一个。三位,然后针对于HTTP请求协议,协议说。一个值啊,这样的一个方法好了,那这个特点是什么呢?这个特点是。
13:07
在service方法中,在service方法直接直接。把request和。Sum response。本为。HTTP。一块。和TP啊,哎,我们就这么转的。等于它并调用了重载的service,咋写的呀,这里边的是它。
14:03
CTRLC来流程啊CTRLC。然后接下来在这中获取了请求。方式怎么获取的?叫request.at然后呢,根据请求方式。创建创建哈好括号叉叉叉。为具体的请求方式。比如。
15:03
盖post,哎,就是具体实现的样子,我们把我们这个复制过来啊,我们这个足以说明问题了,My at service复制过来看。具体时间就长这样。但是我们这个代码有点恶心的那个地方,我们也给他改一下啊。明天写的更好。就这块儿。体用啊。找到service。文件那个写的好,TCTRLC。那么呢?好,这怎么写的,直接转抛异常调了service,这是我们的service获取请求方式,然后去调对应的do get跟do p,这就是它具体的实现,就这么实现的好了,然后的话呢,我们实际开发,实际开发中直接异常HTTP根据请求方式,并根据请求方式不写。
16:37
覆盖溶解度咔咔方法这个好处。四好处优点是吧,优点就是啊,直接有针对性的覆盖度啊,咔咔方法一个,所以说这个时候什么呢?我们不用再去看那个请求是什么,一个好处,另外一个好处就是直接使用http request和TP。
17:22
不再需要进行强转,不再需要强,哎,这就是我们的B,以后我们重写直接。继承它覆盖对应的do叉叉叉方法就可以好了,那于是呢,我们再看我们这个版本过来,这个写法就是这么写,看啊C哦就来了,以就这写,同学说是不有个警告啊,为什么有啊,因为。
18:03
智能化了是吧,我们加一个智能化ID就好。这是我们一个的。真正写so的话呢,直接继承HTTPSO,并且重写对应的do get跟do post方法就可以好了,最终的实现就是这样,说到这个HTPS的话呢,我们需要掌握这样的几点,第一点。这是一个它继承子,它是针对于HTTP协议所定制的,第二个它具体实现是什么样的?第三个我们真正需要知道的是它在实际开发中我们直接继承他,并且根据请求的方式来复写度叉叉叉方法即可。这个是我们需要掌握的,至于说刚才这块的话呢,我只是跟大家说一下,我们在呃发一个请求,如果不支持这个方法的话,实际上还是有一个方法受理这个请求,哪些方法呀,在这里边已经定义好的一些方法受理了这个请求。
我来说两句