s m s 佛系让发送短信变得更简单。在日常的开发中,比如说我们要对接多个平台的一个短信,像阿里云、华为云、腾讯云等等之类的,如果一个一个去对接的话,就需要我们去阅读相关的文档,然后再变现工具,再进行发送短信, 这样就很浪费我们的时间和精力。所以说这个工具帮我们兼容了多个厂商,可以让我们动态的去配置,切换这些不同厂商,实现短信发送。然后我们来看一下他在实名步骤中的一个集成。 在审美部的项目中,我们只需要去引入一个依赖,然后去进行配置文件中的一个厂商参数配置。比如说这里是阿里云的配置,或者说华为云的配置。 然后就可以通过一行代码去实现短信发送的。比如说这里以阿里云,然后给指定的手机号发送短信,如果是华为云的话,把这里的一个类型 改成华为就行了,非常简单。在进阶配置中,你可以去配置 reds 缓存,限制账号的每日最大发送量,我们也可以将配置持久花到数据库中,这是他的一个相关的一个配置。 对于不同厂商的一个差异化,我们这里有详细的一个介绍。这个工具目前支持的厂商还是算比较常用的的。
粉丝8.1万获赞79.0万

大家好,本节课介绍阿里云短信发送接口的开发。 在开发阿里云短信接口之前,我们需要增加阿里云 sdk 的依赖和阿里云短信的依赖。 第一个是阿里云 sdk 的依赖,目前这个是四点六零,是最新的 sdk 版本,另外还需要加入阿里云的短信发送 api 的依赖。 如果需要查看阿里云 sdk 最新的版本,我们可以访问下面这个链接 啊,就是这个界面,目前是四点六点零,是最新版本。 下面介绍一下阿里云后台的设置。我们使用阿里云短信之前,需要先在阿里云后台开通短信服务啊,这个申请我就不掩饰,因为我这个账号已经申请过了 啊。大家如果申申请阿里短信的,可以在搜索栏里面搜索一下短信服务。 在开通了阿里云短信之后,首先要添加签名啊,添加签名一般是公司的简称,这个 签名的审核可能需要需要一段时间吧,大概几个小时。 申请了短信签名以后,然后需要增加短信模板,如果是身份验证啊,注册等等一些常用的模板,阿里云已经提供了一些默认的,这些就可以不用额外申请。 另外需要注意一下,每个模板都有一个模板编号,我们发短信的时候需要依赖这个模板编号。另外我们使用阿里云 sdk 发送短信的时候 啊,这个模板就是正文已经有了验证码什么什么,然后中间嵌入一个并量这,这是一个短信的模板,如果我们开发更多的短信 的模板,比如说订单,通知等等这些,需要我们再单独在阿里云模板管理这里,这里面添加, 下面介绍一下阿里云短信服务的 appid 和蜜药啊。首先我们点 阿里云后台右上角有一个头像,头像点击时候会有一个弹窗,这个弹窗菜单有一个 xst 管理,点击这个菜单以后会打开这么一个界面 啊,下面有两个按钮,一是继续使用 x x k, 那么这个 x x k 是一个根,就说阿里云,我们阿丽云后台这个总的 x x k, 那 如果是这个使用这个 t 的话,阿里云账号下面所有的包括直播、顶播、云存储等 付费啊,只要是只要是那能够有 apap 爱调用的,这都可以调用,所以这个安安全性授权是一个问题,因为我们如果是一个公司的话,可能会有很多啊,不同的角色来使用阿里云的, 阿里云的这些权限,所以我们需要分开,直播是直播的,短信是短信的,如果要分开的话,我们就要需要创建子用户, 创建子用户为每一个子用户分配 s, s, k 和不同的权限,所以我们需要创建一个子用户,并给这个子用户授予短信的权限。 创建了此用户以后,点这个用户这个蓝蓝色的这个这个地方会弹出一个用户的详情,在这个详情的界面上有一个创建 xst, 然后我们按照流程设置 xs t 和密要, 然后下面我们需要给这个用户添加跟短信相关的权限, 那么现在搜索 msm s 是出来这两个,出来这两个的话,我们可以把这个呃点击一下,点击下会加到右右边的一选中的权限即可。 下面是我们看一下程序 s s m s u 铁,这个是短信发送的类,这里面有一个方法 send ali sms, 我大概介绍一下,这个就是从阿里云后台 sdk 中啊,超过来的例子啊。首先是设置属性两个超市时间,然后调用阿里云的这个 client pro 这个接口, 然后传入这个 part stream 啊, username, 这个就是 appid, password 就是 key 啊,就是 mel。 然后这个是按照例子里面是下面一会在演示,演示运行的时候啊介绍一下,然后 放进短线发送请求,设置手机号,签名, 然后短线模板的编码, 这个验证码可以卸他帽子,就注点, 那么在这里面我们是不是需要返回呢? 啊,这个按理说是应该需要返回的,这样我加一下啊,因为我们需要在外面啊,在外面去眼用啊,在外面去眼用这个 response, 然后 好 return send s m s race p o, n o n s e。 这里面瑞斯胖子,他下面会有一些,有一些返回的值,我们看一下啊, cat you get this id cold message requested id, 主要有这四个,四个字不串的返回 发回内容, 那这个我们暂时就反馈这个对象吗?我这样的话,在外层调用的话,需要引用这个不太好,不如我们还是在这里面还是封装一下,封装一下 能装一个真丝 opad 用这个就是经常用啊,这个经常用,我们在这里面这个是用阿里巴巴的那个八字真损 janson operator, 然后下面我们写 string 扣子,等一个真三点啊,等一, send sms race pass, 点 get coke drink b s i d。 等一个 send m s s race p r, s d get dcid, 还有两个是 string m, e, s, a g send s s g send response message, 还有个 requests id, 当然这个有可能是响应,比如说中响应连接不上或者其他什么问题会导致这个为空, 他如果唯空的话,他会报报异常,或者我们在这里面解析,如果有问题会报异常,这个我们就可以不用管啊,直接把异常抛出去就行。 好,那现在我们封装一下啊,啊,真身点 hold, 呃,封装的作用就是,呃,避免,就是说在外层再去,继续去,继续去 啊,依赖于这个三百三百岁的胖子变量啊。 这个是扣子, 就是 dxid, 然后还有两个 nice, 下面是一个, 然后我们这个锐探就改一下 just, 这样的话我们就赶完了 啊。下面我们看一下调用的这个方法,就是这个。首先是 prodom dysmsapi, 这个是阿里云,呃,短信接口,呃,规定的啊,这个域名,这个也是规定好的, 这个是两个超时抓拍了,是西安,杭州,这个根据各自的阿里云申请的地址有可能会不一样。嗯,优点,内幕是 excel key, password 是密要,然后这个要定一个签名,这个签名应该是在这个是接收短信的手机号,下面这个是签名,注意这个签名就是不加这个, 这个括号啊。呃,在接收短信的时候他会自动给加上这个,如果加上就发送不出去了。嗯, 另外这个是短信模板的兵马,就是之前我们使用的阿里云提供的默认的短信模板, 然后下面这个是生成一个六位的,嗯,这是之前我们在自不串工具类里面介绍的生成一个六位的随机码,随机验证码,然后掉刚才的这个就是刚才我们演示的这个三, 阿里 mss 这个参数比较多啊,参数比较多是为了我们就是让这个底层的啊,底层的呃, 底层的方法不依赖也数据库别的某个特定的表结构啊,比如说是将短信、 呃账户什么的等配置信息存在数据库,如果存在数据库里面,我们这个基础的 api 基础的调用就就需要去引入这家数据库。因为现在我们基础内裤的开发的原则是 是所有别的非基础内裤依赖于基础内裤,而基础内裤不依赖别的非基础内裤。 那现在这个阿里云的短信的发送啊,就介绍到这里,谢谢。

大家好,我是陈希汪,然后前段时间有很多粉丝问我项目开源项目,然后怎么下载下来,怎么不熟,怎么去把它,嗯,从在呢个环境上怎么把它跑起来,嗯,这种问题已经收到很多反馈了,然后我最近就想搞一期这种视频, 现在是以若一开源系统为例子,然后在这个呃,是在阿里云生的 os 八上面去 安装部署,然后跑起来给大家演示一下。就是因为很多小白容易在安装软件时候把 问题或者中文乱码问题等等问题会卡住,然后本期出的视频就是按小白有一个思路,然后可以通过这些我的那个笔记安装的一个详 细的笔记,然后能够通过笔记能够把项目能够跑起来。项目的大概步骤我这个大概简单的说一下,其实就分这几步啊,就在前期你要准备一个阿里云,嗯,云服务圣诞 s 八,嗯, 虚拟机也行,然后上面会安装 gdk manget, 然后为添加 ss h 功效,然后在 excel 上面会装刀口,刀口里面会装埋射口,然后从 给他上面会拉起这个开源项目若一的代码,并且在这个执行若一项目里面的买四口缴本, 最后修改这个项目里面的配置项并启动,这是整个一个过程,大家可以看一下我具体的一个视频,然后结合我的笔记去操作一下这个 很容易上手的, 黑头的眼睛, 总有些星期

ok, 我们继续。哎,刚才我们对这个店铺文档了解以后,那现在我们和大家一起来看一下这呃如何通过这个文档来测试一下我们发送短信的这个功能。点击测试啊,点击测试以后,这里面需要什么呢?需要你来进行登录, 那如果说没有账号的话呢,你可以去注册一个账号,呃,或者说你来扫京东云,或者说微都微信的这个二维码, 但如果你已经注册过的话,那这时候应该是扫码就进行了登录。如果没有注册的话的,你扫码的时候,他会让你到登录页到注册页面就完善他的一个个人信息,最终来完成这个账号的一个注册,并且自动给你登录进来,那么现在就扫一下, 哎,这个扫过以后,他让我去现在绑定京东账号,那么这种话呢,下次再说吧。 哎,那大家注意一下,我们到了这样的一个店铺,就是我们刚来店铺,那这时候我们点击测试的话者应该从这边能够看到他处在一个登录的状态,那这时候我们点击测试, 点击测试以后跳转到这样的一个界面,跳到这个界面以后,因为我这个账号在之前这个京东万象的平台注册过,所以说我扫码以后,它相当于是一种登录的功能, 如果你没有注册的话,相当于扫码过以后,他会弹出一个界面,让你填写一部分的信息,比如说你的手机号,你的姓名,然后点击确定以后,相当于这个账号就有了这个账号有了后,他能够自动的跳转到咱这个这个这个登录里面, 如果你点击测试可以过来的测试发条短信试一试,那整个这里面是短信的接口,短信的接口,然后这里面是他的一个 appk, 这个 bpk 其实就是什么,刚才在这个注册的时候,也就是登录了以后,他给我们发分配了一个 app 的 k, 相当于是咱的 id 号,然后这里面是相当于咱通过什么样的,通过咱上面的这些 把短信这个短信内容发送到什么呢?这个手机号码上,我们可以测试一把啊,咱点击测试,点击测试以后你会发现上面是一些请求的信息,请求的信息包含了他的这个接口地址, 包含了他的接口地址,也就是说发送到这个接口,然后后面是什么呢?是要接收这个信息的,这个目标的手机号码肯开 是后面的内容,咱采用的什么样的创新?这里面给我们提供的这个,提供的这个这个内容,以及提供的这个模板,那咱就按照这种方式把它什么样的,把这个内容把它加上去,然后这边后面跟着这个参数, 个人参数叫它 a p p k, 那 a p p k 就是咱刚才的 t, 也就是说,哎,发送这样的一个请求到什么呢?找当前的这个短信平台,发送这个请求到短信平台。哎, 发动车请求到短信平台以后,短信平台接收到你的信息后,把你其中的这里面的短信的坑谈的内容转发给谁呢?转发给这个手机号码。 哎,他转发过以后,也就说他这个信息提交给什么?提交给这个运营商以后,他立即会返回一个响应的状态,那这 里面看到扣的一万是表示查询成功,也就是说咱当前发送给京东发送给这个短信平台已经能够连接成功,并且在这边还能看到一个 return success, return success 这边看到 succes, success 表示成功,所以说我们看他的最终给我们的响应的内容,主要就看这个 是否有连上这个短信平台。另外短信平台反馈 success 就说明咱这边短信已经发送成功。在这边再次强调,哎, 短信平台反馈出来的这个发送成功,最终用户有没有收到短信,这个并不一定哦,并不一定。这也是为什么大家在网上注册一些网站的账号的时候,经常填写手机号码,手机手机号码下面这个验证码就进入了倒计时状态,然后你收到 短信的这个验证码的时候,这个这个倒计时可能都到了五十或者是四十,也就是说总是会最后一段时间才可能收到这个短信, 但不论怎么样用户也没有收到短信,咱这边已经无法去处理。咱主要根据短信平台反馈的这个状态啊,如果是首赛时就说明这个短信发送成功 啊,就说明这个短信发送成功,那待会我们就根据什么呢?根据类似这样的效果来实现短信发送的这个功能。

首先我们打开阿里云官网,点击搜索,点击域名,在这里输入我们想要购买的域名,比如以暖阳为例啊,点击搜索,点击立即查询,这里能够看到我们想要购买的域名,我们以这个域名为例, 然后点击加入我们的清单,这个时候点击立即购买,能够看到已经跳转到我们的这个订单确认的界面了,这个时候还不能直接购买,还要输入一些信息,比如说 点击购买的话会弹出来让我们选择域名的持有人,然后我们选择个人,除此之外还需要创建我们的信息模板,比如点击购买能够看到我们需要创建我们的信息模板,然后点击创建信息模板, 能够看到这里是我们的模板管理界面,然后需要在这里输入一些模板相关的信息,还有我们的个人信息, 以暖阳为例,然后能看到选择城市,还有一些通讯地址,还有邮箱一些这些,还有身份证, 这个是我们没有注册的一个界面,这是我们填好的一个信息模板,能够看到它是未实名认证的, 这个是我已经注册好的一个模板,能够看到有审核中还有已实名认证这几个状态, 点击这个时候如果说已经经过实名认证,我们点击立即购买就可以了,这个是我们信息模板的状态,是一个审核中的状态,还没有审核完成。 这个如果我们选择购买,就要选择一个持域名的持有信息模板,如果是审核中他会不能选择,会进行一个弹框让我们重新选择,所以说我们要选择一个已实名认证的模板才可以进行下单购买, 如果购买完成,可以点击我们的控制台,点击我们的来查看我们的域名,然后点击左上角的菜单,然后点击域名,能够进入到我们的域名的管理界面,然后点击 我们的域名列表,能够查看我们的全部已经购买的域名,这里是空的,没有的,因为我我还没有购买,没有进行一个实名认证。 这张图片是我一个已经购买完成的一个域名,看到他的状态已经是正常了, 我们可以点击解析来把域名和我们的夫妻 ip 进行关联,我的域名因为已经是正常了,正常购买以后是审核中的状态,需要进行一个审核,审核完成以后就是一个正常的状态, 正常状态以后就可以跟那个服务器的 ip 进行一个绑定。这里是我们的一个域名解析的界面,看到左上角是我们的域名地址,这里记录值是我们的服务器 ip, 主机记录值是三 w, 这里的记录值也是我们服务器的 ip, 不需要争口号,这里我们主机记录是三 w, 如果我们进行访问的话,就是我们的三 w 点,然后域名的地址点 com 加 c n, 所以我是以三 w 为例,这是我们的一个 dns 服务器的状态,嗯,看到是如果是正常的话,他会显一个正常的状态,如果未审核就是我们刚才的审核中的状态, 能看到我们主机记录值是可以写多个的,我是写了一个 at, 写了一个三 w, 这里是我们记录值,是我们状态,是我们的正常 记录值,是我们的服务器的 ip 能够看到这个时候我们的通过域名是可以访问网站页面的,看到网站是已经成功访问的,但是过一段时间由于没有备案, 我们还需要进行一个 icp 的备案,不然预网站是没法访问的,下面我们来讲一下 icp 是如何备案的。点击进入我们的域名备案控制台,点击备案控制台进行一个跳转,跳转到我们的备案控制台里面,能够看到这个是展示的一个域名备案的一个过程, 左上角是我们的一个域名的备案地址,能够看到我们右下角是点击开始备案,进入到我们的备案界面,能看到备案一共分为四步, 主要都是一些个信息,个人信息,还有这个或者企业信息的这个填写, 按照这流程,然后进行一个填写, 下一步下一步就好了。有一些常规的信息,这个是我们备案过程中需要准备的材料,主体负责人的证件,还有营业执照,这个也是一些个证件,包括我们这个网站负责人的手持主办单位证件照。 这个是我们 sap 备案的一个主要的流程,一个完整的流程,首先看我们的网站主办者能够提交我们的信息服务商进行一个审核,最后城管局进行一个备案,最后生成我们的备案号, 这就是我们一个网站从域名购买到域名备案,到最后的 s a p 备案到网站上线的完整流程。

这期我们来分享十五种编程语言,三十种调用 a p i 写法,全网最全,点赞收藏,如有需要加群领取!一、 see rest sharp 二、 see lip cur 三、 dart h t t p 四 go native 五、 javo k h t t p 六、 java unarist 七、 javascript excels 八、 javascript fetch 九、 javascript jacquery 十、 javascript native 十一 javascript request 十二、 javascript unerast 十三、 javascript x h r 十四、 objective scene searching 十五 o c m o code 十六 p h p c u r l 十七 p h p gazo 十八 p h p h t t p request 二十九 p h p peculate t t p 二十 python at client 二十一 python requests 二十二 r h t t r 二十三 r r c l 二十四 ruby net 二十五 shell c u r l windows 二十六 shell c u r l 二十七 shell h t t pi 二十八 shell power shell 二十九 shell veget 三十 swift a session。

哈喽,今天来给大家分享一个小技巧,手写一个动态的份,实现一个万能接口调用,什么意思呢?比如说我本服务如果要调用商品服务的话,我需要写这样的一个接口,在接口上呢需要指定这样的一个注解,指定他的一个名字, 并且呢指定调用的 u i r, 如果说我想要调用 u 的设备四呢,依然是要这样做,但如果说我想要调用很多个服务呢,我可能就需要写多个这样的接口,那代码呢会比较的繁琐, 那我们来看一下如何实现万能的一个粪钓用。那我这边呢有一个 dynamic client 的一个类,把它放在容器中,然后呢我注入了一个 dynamic fin client factory 这样的一个呃对象, 这个工厂呢主要是用来生产我们 dynamic service 这样的对象的,那这个里面有两个方法,一个是 pose 方法,一个是 get 方法,然后我们在 pose 方 方法中呢用 dynamic factory, 然后的一个 get 方法去获得对应的 dynamic service 的类,然后用 dynamic service 去调用我们的方法,然后发起远程调用。 我们来看一下他是怎么获得这样的一个 service 的,他这边呢传入了一个分内幕的参数,然后这个就是我们的远程调用的那个服务的名字,然后呢我们看一下他的这个方法的实现,然后这个里面呢他用分克拉的 build 这个分自带的一个建造者, 然后传入我们的呃一个类型,然后再传入服务的一个 id, 然后呢我们就需要他返回我们对应服务的这样的一个对象, 那我们来看一下打了每个 service 这样的一个接口,这个接口里面呢其实就是定了两个方法,一个是 pos 的方法,一个是 get 方法。那我们来看一下是怎么用的?比如说我在容器中拿到这样的一个对象,然后呢调用他的这样的一个方法, 然后呢传入我们远程服务的一个名字和 uil 以及我们的参数。那这样的话是不是就实现了一个远程调用了呢?我只需要传入不同的服务名,然后 uil 以及我们的参数就可以发起远程调用。那如果说大家想要这样的一个 demo 以及之前的 demo 的话呢,可以到这来 这,然后给他去发一个消息,像这样就可以拿到我们的 demo。 好,今天的一个分享呢,就到这。

前端如何编程实现向后端交互呢? vivo 语言是可以这么实现,分两个文件,一个是 vivo 后缀文件,负责页面展示及新增修改删除等交互操作。另一个是 js 后缀文件,负责定义交互接口, 其包括 er, messi 的及 parents 等参数 l 即 messi 的须根 java 的 controller 定义一致,这样就实现了前端吊用后端接口了。

在家卧编程中有一个最重要的设计思想,那么就是面相接口编程。 那什么是接口呢?接口在家务中,通过因特费此关键字来定义所有的模块依据设计的接口进行实现,而在外部调用时,依据接口定义的方法试图 进行调用。随着不同版本 gdp 的更新,接口的功能也越来越强大。如果你还不懂得接口的使用,那么一定要好好补一补家务的基础概念。想了解更多编程知识,请点击关注。

接口传声小技巧我们经常调用第三方接口,利用字符串拼接参数非常容易出错,但用 forma 进行拼接请求参数就完美了。你学会了吗?

哈喽,今天给大家分享一个基于家瓦的接口快速开发框架,叫 majaapi, 通过它提供的 ui 界面呢,我们可以完成编写接口, 不需要去定义,肯出了 service deal、 mapper、 巧妙 vo 等加瓦对象就可以完成。我们常见的一个借口开发,比如说我们点击开始使用,然后我们点击快速开始, 就根据他这样的一个步骤呢,我们去做操作就可以,比如说我们创建了一张表,然后插入了两条数据,然后呢创建了一个 sprine 部队的空的工程,引入了我们 stat 的依赖, 然后呢引入我们妈这个 api 的这样的一个场景启动器,然后呢把我们的外本以及我们的麦收口这些依赖呢都给他放进去,然后啊我们去配置我们的一个配置文件,我们就可以把这一段复制粘贴, 然后我们去启动项目,启动项目之后呢直接访问这样的一个地址,就可以看到我们的外部界面,那我这边呢是已经启动好了啊,我直接去访问这样的一个地址就可以了。好,进入到这样的一个 ui 界面之后呢,我们再根据他的一个步骤,然后往下去执行, 比如说我们去创建一个分组按钮,比如说我们去创建我们的一个分组名称,然后呢分组录音都叫 test。 好,创建完之后啊,然后我们在他的一个记录上点击右键新建接口,新建接口之后啊,我们就可以在这边,然后去定我们的接口和接口的路径,比如说我这边定 task, 然后这边也定一 testa, 然后我们再看这样的一个文档,然后把这样的一个内容呢给他复制粘贴放到这边来, 我们直接点 ctrls 保存,他在这边就直接生成了一个 uir, 我们就可以直接去呃访问这样的一个 uir, 相当于能够访问到我们这个 socl 的查询到的一个结果。比如说我可以直接点呃这边的一个运行标志,可以直接点他, 然后比如说点一下,点一下之后呢他这边就会有一个响应体。当然我们也可以把这样的一个 test tess uyl 呢直接复制到我们的浏览器上去运行一下,比如说呃运行一下这个, 然后我们这边也会有相应的一个响应的一个展示,那这样呢快速的一个入门呢就已经做好了,然后这边还有一些基础的一个教程,都可以一个一个去看。好今天的分享呢,就到这。

定义好接口以后我们接下来要做的就是实线接口,实线接口,实线接口的语法呢?在这里, 语法在这个位置啊,好,拿过来啊,往里面列一下啊,就是语法在这里,就是说这个是我的修饰符类类名。好,如果你有继承的话继承这样写 继承这样写好,我的实线接口应该放在继承的哪里后面。那没什么,如果你有继承这样写你的继承如果你没有继承你就可以不用写啊。好,如果你继承的话,写完继承以后实现接口的代码必须写在继承之后必须写在继承之后啊,这个需要注意,然后我们看下后面的语法接口。我可以干嘛? 多个实现多个实现。哎,就说你除了实现这一个借口以外我还可以实现第二个借口啊,比如说再来一个啊,再来一个借口。注意啊,我们以后新建借口可以。怎么新建呢?这里是不是有个一圈 face, 看到了吗?对不对?直接点他就好了啊。好,这个是什么借口呢?这个小哥名字啊,叫俄罗斯的约 usb to 吧。啊, usb 二。好啊,这个是这个这个是另外一个借口。好,然后我再给一个方法啊再给一个方法啊, maxi 的 maxi maxi 的兔啊 maxi 的兔啊。懒得想名字了啊,就简单表示一个抽象方法。好,然后我这个接口呢?他除了可以实现这个接口以外还可以实现 usb 二这个借口, 然后到那什么,然后你看他是又搞错了,原因是因为他是不是还要再重写约是第二里面的方法,然后想明白了吗?啊,这个在程序世界上讲过来讲就有点类似什么呢?有点类似于你当前这个借口啊,既符合约是第一的规范,又符合约是第二的规范, 理解吗?对吧?啊?就大概这个意思啊啊大概这个意思啊。总之你实现了多少接口?你把这个接口里面的抽象方法全部都要实现啊全部都要实现啊,所有方法全部都要实现好,可不可以不实现呢? 可不可以?如果不实现的话这样行不行?大声点,可不可以?是不是可以? 除非你当前这个类是抽象类,那么接口里面的抽象方法就可以不用实现啊。没什么啊,跟那个类是一样的吧啊跟那个抽象类是一样的啊。啊。因此我们就不要把借口想的太复杂了啊。他就是一个特殊的抽象类啊他就是一个特殊的抽象类啊。唯一的区别就是他里面只能是抽象方法啊,但是类里面呢他他可以有自己的实现抽象类里面可以有自己的实现啊。 好,然后这个就是一个接口的。呃,接口的定义还有一个接口的实线的接口的实线啊,在这里来接下来我们看一下啊。接口的继承 接口的继承。接口和接口之间本身呢他是不能实现的,这里需要注意。比如说我这里有一个接口 usb, 那么我这里有个接口约是 b 二,那么我这里干嘛呢?你接口和接口之间本身是继承的关系,你就说应该用这种方式去继承 usb 二 用这种方式去继承月是第二,然后这就表示约是第二的抽象方法是不是继承过来?嗯,并且然后我这个实现呢,我只要 直线 usb 一就可以了。然后 usb 一里面是不是自带的这个这个方法那是什么啊?是从 usb 二里面继承过来的啊是从 usb 二里面继承过来的啊。一样的。好好。然后接下来还有一点需要注意,就什么呢?接口可以多继承接口可以多继承就是假设我再来一个月是 b 三啊, usb 三啊,同样的也是一个接口啊,也是一个接口,我试一下 usb 可以实现可以继承 usb 二同样的也可以也可以继承 usb 三。 你看这种语法没有错啊这种语法没有错好。那么有些同学可能就觉得奇怪说比如说佳娃是点击成吗?这样看看上去好像佳娃不是点击成的。这不是的啊,他这个啊接口虽然用的是是虽然用的是继承的这个关键字但是我们仍然说这个接口实现了这个接口。 那什么仍然是用实现的表示去表示的,但他只是用的是继承的关键字而已啊。因此呢我们这里需要注意些什么呢?就是,呃,加网。仍然我们说他是一门点继承的语言啊仍然是一门点继承的语言,但是接口和接口之间还是可以多这种多继承的。 这种区别我们要知道啊区别我们要知道啊。这个观念在这里你看一个接口是不是可以继承多个接口。看到了啊,一个接口可以继承多个接口啊就因此我们这里需要啊把接口的特点再列一下啊啊就是什么呢?一个类啊啊接口接口的意义接口的意义在于让其他类实现 啊,再约上其他的类实现啊啊一个类可以实现多个接口啊一个类可以实现多个接口啊?好,然后第五接口和接口之间啊。啊可以啊,可以互相继承啊可以互相 继承而且可以多继承啊而且可以多继承,这个我们需要注意啊。好,第六是什么呢?一个类如果啊,一个类如果继承了一个负类啊,并且实现并且 实现了一个接口啊。折折什么呢?折,继承必须写在实现前面必须写在实现前面。什么意思呢?就这个意思,就是我当前这个类如果找到这里啊我当前这个类如果还有继承别的类 如果还有继承别的类啊,这是 a 对吧?啊那么语法就应该这么写,就是我这个类继承了 a 类实现了这个借口,等等是吧啊语法必须这么写啊,就大概这个意思啊,给你们列出来就好啊就大概啊,就大概这个意思啊。啊 好,然后接下来我们来稍微看一眼啊,我当前的这个我当前的这个我当前的这个实现类实现了 usb 接口,那么呢我们就可以干嘛呢?就可以把这个接口啊看成一个特殊的负累啊看成一个特殊的负累多肽仍然是可以运行的,有什么意思呢?看好 usb u 等于等于六一个 usbm 片,这个语法是完全合法的, 你看啊,他他本身来讲是一个接口吧,你就说现在这个现在这个创建对象的,否则变什么样子呢?变这个样子啊,接口接口明对吧啊?变量明啊变量明等于又一个实线类啊。实线类 理解吗?他这个其实也是多态,就相信什么呢?子类的对象赋给了负累的变量是不是这意思我们的接口是不是可以看成一个特殊的负累能够理解吗?哈喽 啊 ok 吧,我们就把接口干嘛呢看成一个特殊的负累就好了就是子类的对象直接付给了负累的电量啊直接付给了负累的电量这个和那个多肽是一样的啊这个和那个多肽是一样的啊 好,第六啊第一啊第七对吧。这边写上啊这什么呢子类啊就是接口啊接口可以啊看成一个特殊的负累啊可以看成一个特殊的负累啊然后是可以干嘛呢啊仍然仍然可以多肽多肽用多肽啊用多肽创建对象 啊仍然可以用多肽创一个像比如说像这个样子啊啊也就接口名变量名等于六一个数线类啊这是完全可以啊就是多肽的话在用普通类的话多肽是这样子的负类啊负类啊负类类型啊然后变量名等于六一个子类 是这意思啊啊这个是我们原来讲的动态对吧啊负累电量名等于六一个子类是不是这样子的啊那么到从接口角度来看的话接口本身是一个特殊类啊只有接口本身是一个特殊的负类那么接口电量名等于六一个实现类对吧一样的啊好啊那么因此呢这种接口呢我们就把当成负类来看就行啊当成负类来看就行 也就说接口换换一个角度来看的话也就说他弥补了佳瓦的不能多继承的这么一个呃小遗憾啊小遗憾因为接口他是可以多实现的啊啊佳瓦当中不能多继承但是还可以多实现啊,就相当于弥补了这种佳瓦当中没有多继承的这么一个遗憾啊。好,接口的一般相关的,呃,就介绍到这里,对, 然后需要需要注意一点的啊,基本上就就就就在这个地方来,接下来我们稍微看一眼啊,接口和抽象类,我把你们同学搞不清楚,就是什么时候用接口什么时候用抽象类,我们这里面可以简单的列一下,就是什么呢?接口 和抽象类的区别啊接口和抽象类的区别啊,我们因为我们可以看到接口里面是不是全部都是什么?是不是全部都是抽象方法对不对啊?他就和抽象类有点像啊,他就和抽象类有点像,那么我们来看一下啊,接口和抽象类的区别在哪里? 首先我们来练一下他们的相同点。相同点是什么呢?抽象类和接口都不能被实力化对不对啊?都不能被实力化主要的意义在于让其他的类继承。然后接口是什么 线啊?接口是实线好,然后接口抽象类呢?和接口都可以包含抽象方法,子类都必须要实现这些抽象方法,除非子类也是抽象类啊,除非子类也是抽象类啊,这是他们的相同点。好,他们的不同点我们, 呃呃,记住下就是抽象类呢,可以有够有普通方法,但是但是接口只能有构造方法,对吧?这是他们一个最大的不同。就抽象类可以有很多普通的方法也啊,也可以有很多的那个抽象方法,但是接口只能全部是抽象方法可以理解吧。就接口他完全是一个规范,自己是不能够实现任何功能的啊,自己是不能够实现任何功能的,但是抽象类呢?多多少少自己还能实现一些功能, 自己还能实现些功能。好,然后抽象类可以有构造方法,接口没有构造方法,对吧?我们刚刚讲了,接口只有两部分组成,呃,产量和抽量方法啊,当然还有第三部分,在第三部分我们暂时可以不用管他啊。啊,所以说接口,接口的成员就是这两个啊,就这两个。 好啊,这个接口和抽象类的区别啊,我们就介绍一下,然后这里面稍微提一下啊,什么时候用抽象类,什么时候用接口啊?其实大多数情况下我们都应该选择用接口来设计我们的程序啊,为什么呢?因为接口他有一个多技巧的原因啊,原则啊,可以让我们设计程序的时候更为方便啊,更为方便啊,当然具体用什么还是凭经验 来看啊,还是凭经验来看啊。好啊,这个接口啊,具体怎么用还是要到后面做相的时候慢慢的来,来,那个就是熟练啊,慢慢来熟练, 然后接下来的话我们来做一下,那个就是学生管理系统啊,刚好把今天学到的知识都来用一下啊,把今天学到的知识都来用一下,好啊,这个概念先。

各位学前段的同学,为了讲解这节课呢,我把阿里云的文件上传实现了一遍,为什么要实现这个效果呢?因为这个效果特别具有代表性,它几乎涵盖了文件上传的所有功能。我这里可以点击选择文件,可以选择一个,也可以选择多个, 也可以呢点击选择一个文件夹,他会递规的把文件夹里边的所有东西全部列出来,当然他也支持拖拽,同时也支持拖拽。文件夹 下边呢是一个文件的上传列表,这里可以分页显示的。当我们确定无误之后呢,可以点击按钮开始上传。 每个上传呢,他带有一个进度条,可以随时取消他的上传,当他上传完成之后,也可以把他给他删除掉。整个效果里边用到了大量的知识,一些细枝末节的我就不一一拿出来说了,同学们需要这个原码的话来找我们就可以了。我就说一下它里边最关键也是最容易被同学们忽略, 或者是同学们根本就不知道的一些信息。我把这些信息呢传递给大家,这里边有很多的关键点,我这里呢把它列了一下,一个一个来。如何实现点击上传多个文件?这个是比较简单的是吧,你只需要给这个音铺子加上一个不尔属性,叫做 martpop, 于是呢,点击它,你就可以选择多个文件了, 按住键盘的 ctrl 进行选择。好,我们回车,你看是不是选择了三个文件,那么将来我们要用阿杰克斯来上传,如何来拿到这三个文件呢?找到这个 input, 我们使用这个音 pro 里边的一个属性叫 files, 他会拿到目前选择的文件集合,集合里边每一项他是一个 file 对象。同学们一定要记住这个对象,无论你是拖拽上传也好,还是选择文件夹也好,还是选择文件也好, 最终的目标一定是为了拿到这个 file 对象,拿到了它,你就可以使用阿杰克斯来上传了。好,这是关于选择多个文件,那么下一个问题,如何点击上传一个文件夹呢? 还是利用这个 input, 只不过这里呢,你要加的属性呢?是这些,因为这种属性呢,目前还不是标准,所以呢,你要适配不同的浏览器,那么这些针对不同浏览器的属性呢,其实都是一个意思,表示选择文件夹,那么我们来看一下效果啊, 好,点击看一下。现在呢,文件是不能选择了,只能选择文件夹了,你选择好一个文件夹之后啊,你回车啊,在某些浏览器里边呢,他会出现一些提示啊,他必须要让用户知道,用户这个操作呢,是为了导致上传整个文件夹里边的文件的啊,点击上传这里呢,就选择了十二个文件, 其实最终的结果呢是一样的,你拿到这个 input, 得到他的 files, 你看里边呢,就包含了文件夹,以及他的指文件夹里边所有的文件全在这里边了。将来我们用阿迪克斯上传,要拿到的就是这个 file 对象啊,那么第二个问题也搞定了啊,第三个问题呢,如何拖拽文件和文件夹呢?啊,咱们来看一下这个例子,你要 实现拖拽呢,你首先得准备好一个区域,是吧,他来接受拖拽东西,那么他要能够接受拖拽的文件的话,你必须要给他注册这么三个事件,一个是拖拽进入,一个是拖拽在这个 div 区域里边的移动,一个呢是放手。这三个事件呢,你都要阻止事件的默认行为, 否则的话这个 div 它是无法支持拖拽的啊。这一块的详细内容呢,在拖拽 a p i 里边,其实呢,它本质上跟文件上传没有什么关系,那么这样子一来呢,当我们把文件拖到这个区域之后啊,他就会触发他的坐补实践,你在这里边呢,就可以拿到他所拖拽的数据,我们打印一下啊, 它里边通过 deta transfer items, 这是一个列表,表示拖进来的所有东西,那么它有个长度,我们打印一下。好,现在呢,我们拖拽两个文件进去啊,看一下控制台是不是打印了一个。二,没问题吧?那么如果说我们拖 拖拽的是一个目录呢,他打印的是一,他不会把目录里边的所有文件全部给你列出来,不会的,其实在操作系统底层呢,目录他也是一个特殊的文件,他认为你拖拽了一个,由于他是一个列表呢,我们就可以循环,他每循环一次就可以拿到他拖拽的那个东西,我们来看一下这个东西到底是一个什么玩意?好,再来一次啊, 拖拽一个文件夹进去,你看他把文件夹识别出来是一个 file, 然后呢进去拖拽两个文件进去呢,他识别出来呢,也是一个 file, 这个对象的类型呢,叫做 data transfer item, 我如何通过他能够知道他到底拖进来是一个文件还是一个目录呢?哎,他这里边呢,提供了一个方法叫做 webcate get us n 去,他会返回一个 n 去对象,我们来打印一下 n 去对象, 现在呢,我们去拖动一个文件进去,打赢了两个 h 对象,你会发现这 h 对象里边呢,信息就要丰富了很多了。他有一个属性叫 is file, 它是不是文件?还有一个属性叫做 is directory, 它是不是一个目录?你看这两个文件的 is directory 是 force, 那么我们去拖动一个文件夹呢,进去你看一下,它的 is directory 等于 true, 所以呢,我们就可以通过这个属性了,来判断他到底是一个目录呢,还是一个文件。 些同学呢,可能会担心啊,这个名字呢,带了一个 webcat, 是不是代表说这个函数只能支持 webcat 内核的浏览器呢?不是的啊,现在的浏览器都能支持,因为一些历史原因啊,他变成了这个名字,根据官方文档的描述呢,将来极有可能会替换成这个名字。 所以说你在具体写代码的时候呢,最好呢做一个兼容性的处理,有这个函数的话就用这个函数,没有这个函数的话就用这个。好了。我们接着说,如果说他是一个文件的话,我们该如何来处理呢?很简单的目标就是拿到那个 file 对象,那么怎么拿 啥呢?非常简单,他就把一个方法叫 file 传入一个回调函数,这个回调函数的参数就是那个 file 对象。好,咱们来试一下啊,我们拖动文件进去,你看就拿到 file 对象了,那么是不是跟之前就一样了,只要你能拿到这个 file 对象,你就能上传了。 好,那么接下来是文件夹,如果说他是目录的话,我不可能上传目录啊,我上传的是目录里边的什么呀?文件。所以说呢,我要便利目录里边的文件,那么如何便利呢?通过这个 enter 呢?可以拿到一个 reader, 一个读取器,只有目录的时候才能这么干啊。这个读取器呢,有一个函数叫做 read entries, 他要传递一个回调函数,这个回调函数里面有个参数, 就是目录里边每一项的 n 确对象。打印一下,你马上就明白了。拖动一个文件夹进去,他打印了六项,说明啥?说明这个文件夹里边有六个东西,有一些东西呢?是文件,有一些东西呢?是他的指目录, 看到没?又是一个 ng 对象,那么你要做的无非就是循环这个列表,拿到他的每一个 ng, 然后呢,重复的地规的把这件事情给做了,那这样一来,不就拿到了这个文件夹下边所有的东西了,是吧?并且生成了一个 file 对象的列表,这就是我们想要的。 你看整个效果呢?看上去功能很多,非常复杂,但他的关键点就那么一些东西。其实不仅是这个效果,整个前端的学习都是这样,你注意应该关注的是那些关键点,而不是那些细枝末节。细枝末节谁不能做啊?而关键的技术,你只要拿到手里边,你就急需竞争力, 这些东西也是决定你薪资天花板和能力天花板,甚至学习天花板的东西,你这些知识学歪了。如果说仅仅就是一个文件上传的话,那还好,就影响这一块,但是就这一块吗?如果说你在家里边发现了一只蟑螂,那么恭喜你,以后你一定会惊喜不断, 冰冻三尺非一日之寒。袁老师,搞技术和教学这么多年,根据我的经验,只要你一块有这样的问题,那么你一定是大面积的。我为什么要推出大师课?一套大师课学习一周左右,你说这一周时间,我能够把你前端的所有东西全部解决完吗?那不可能啊, 但是我可以通过这一周的时间,把你前端最关键最核心也是最值钱的知识给你打扎实了。像什么浏览器渲染原理啊,事件循环呀, 唯有的底层逻辑啊,哪一个不关键?当然,里边的内容远远不止于此,你要想在这个行业里边长期立足,不要天天为温饱问题而发愁,那么你一定要来看一下我们的大食客, 他会让你见识到真正的教程是什么样子。看了,那是课之后,什么百度里边那些乱七八糟的帖子,如果说是我学生写的,那还有点质量,而大部分的帖子你就完全看不上眼了,你会觉得那是什么玩? 所以呢,还没有领到大师傅的同学啊,现在还可以免费领取。如何领?评论区第一条进咱们粉丝群,然后根据提示领取就可以了。好,现在呢,我们把界面上的技术难点都已经解决了,然后就是阿加克斯了,我如何通过网络实现多文件的上传呢?这里呢,通常有两种模式。 第一种模式呢,就是把我选中的很多个文件合并到一次请求里边,发送到服务器。这个很简单呀,那就是每个文件一个字段嘛,找答案嘛,每个文件一个字段,给他发到服务器就完事了。 第二种模式呢,是把收集到的所有文件形成不同的请求,每一次实际上是一个单文件的上传,在界面上看起来呢,好像是一个多文件上传,实际上呢,他在发送请求的时候是一个一个发出去的。 那么这两种模式哪一种更好呢?一般来说,我们会使用第二种,为什么?因为如果你使用第一种的话, 数据量太大,发送的过程中突然失败了,就会导致所有的文件要全部重新发送,他很难完成对每一个文件的独立控制。而使用第二种模式呢,即便是某一个文件失败了,那么我到时候呢,我只需要重传这一个文件就可以了, 而且这种模式可以针对不同的文件单独的进行取消,删除进度,控制他更加的灵活。只是你使用第二种模式的时候呢,注意一下啊,因为文件比较多,也要控制一下并发的请求数量,我这里呢就是使用的第二种模式发送的, 那么你要说具体代码该怎么写,以及呢,如何在每一次上传的时候实现进度的追踪,以及如何来实现取消。翻看一下我前面几节的视频, 我这里呢开的这一个系列都是讲解文件上传,我是从头到尾把它讲透了的,你可以往前翻一翻啊。好了,有了这些技术关键点之后,就加一些样式,加一些交互,加一些验证,最终呢就变成了这个样子。那么这一块的原代码呢,你来领大师傅的同时可以顺便的领取啊。


哈喽,这里针对于刚入门的家伙,小白来分享一下如何将我们的一个家伙项目部署到我们一个尼尼克斯服务器上面去。在这里我们先在我们的一个爱调中进行打包,打包好了之后可以在我们一个他盖的目录下 去看到有这么一个架包,然后我们将我们的一个架包拖动上传到我们一个福气上面去,上传好了之后可以在我们这里运行这么一条命令, notep 加瓦钢架, 然后跟上我们,这么这样我们就以后台运行的方式去运行。好的,我们一个加快程序,我们也可以通过 gps 杠 l 去查看我们刚才运行的这么一个加程序比较简单。在之后如果说我们一个服务需要部署到我们一个集训服务器上面去,可能会去了解一下我们的一个容器化部署多可以及我们的一个 k 八 s 等之类的一个技术,这些技术都不要觉得难哦,每天我们去学习一点点,最后就会进步一大步,加油加瓦。程序友们,最后你们是怎么部署我们的一个加瓦程序呢?可以评论分享一下,谢谢。

在加号开发中,不知道你们会不会写这种 c 口,使用多了法,他会存在 c 口注入问题,也就是说在前端传唱时去指定一些特别的参数,这样我们就可以去修改这条 c 口,因为他是直接去替换我们的参数,他不会像井号那样是个站位符, 这也是常见的面试题。然后我们来演示一下这个 c 口注入问题,在 gap 上面有这么一个工具叫 c 口注入问题,他可以帮我们去测试 c 口注入问题,并且他的新鲜数也是很高的。然后回到我们项目中, 嗯,我们在这里打开我的终端,首先你需要去下载 sic map 这个工具,嗯,然后通过这条命令去执行,这是我后端的一个接口,然后这个参数是随便查的,然后我们在这里去执行一下, 这里能获取到我们这个接口是否存在 secret 注入问题,如果说有问题的话,它这里会显示 我们的数据库版本。然后我们也可以去直接获取到我们数据库的账号密码,我们这里来先来获取数据库的一个账号,这里就会去拿到我们的一个入特以及其他的一些账号。如果说想要去查看密码的话,我们可以通过 password 这里就能解析出我们数据库的入土账号密码是入土,可以看到这个工具还是很强大的。然后我们来说一下如何去解决这个 sq 安全问题,我把鼠标放在这个上面,这里会提示我们这里存在 sic 注入问题,然后我们看一下这个, 他能帮我们去自动的去修改这个,这里就会看到我们修改出来的 c 口是这样的,他会帮我们的多了符号,改成我们相关的井号。我这里是使用的 i 调中的一个插件,这个插件是这个啊,通过安装完这个插件之后,他可以 帮我们去扫描家务项目中存在的安全问题,并且提供了一键修复功能。快去扫描一下你的家务项目吧,说不定是一大坨。警告,在入职第一天,建议你们不要去扫描公司的项目,不然的话你们可能当天就想离职了。

每个阿里开发都用的神器,不会有人还不知道吧,有这么一个阿里裁员的工具,在 gtr 上有三十一 k 的四大数,有无数的好评,我们先说说他牛在哪?首先呢,如果你的代码没有打印日志,但是线上出了问题,你又想看看方法的入餐、出餐以及报错信息等等,不用改代码他就能帮你解决。 如果你的代码方法耗时比较长,但是你又不知道具体耗在哪里,当你无从下手的时候,他也能帮你快速分析。如果你想快速的查看这个 m 当前各种堆档位以及现成档位的情况,用这个工具敲几行命令就能搞定。 也就是说,我们日常工作当中常见的各种 cpu 标高内存一出频繁 gcrt 变长死锁等问题,用了这个神器分分钟就能定位到。这个工具的名字叫做阿尔萨斯, 只要你的 gdk 版本在一点六以上,都能采用命令行交互的模式,通过各种内置的命令快速的排查线上问题。其中呢,我觉得比较好用的几个命令就是 volts, choice, djd 等等。其中 vols 和 choice 命令呢, 其实是依赖自己马差装技术实现的,你可以把这个技术呢理解为这位 m 层面的 aop 编程,其实呢,都是基于扎的浪点,因此专门的包里面提供的自己马增强功能实现的。当然这些原理你可能不感兴趣,没关系,工具可以用起来真的超级好用,强烈推荐,用过的都说好,遇事不绝,阿尔萨斯!

接下来我们来学习常用的函数式接口,加瓦巴在加瓦点 uto 点仿 k 肾包下预定了大量的函数式接口供我们使用。这里我们重点来学习下面的四个接口,第一个是萨普莱尔接口,第二 个是看书门接口,第三个是 red kit 的接口,第四个是绑 k 绳接口。我们首先来学习第一个接口 siri, 而关于 siri 接口的描述信息,我们先到帮助文档中去查看一下。 来看这里我找到了接口萨普莱尔,他在加瓦点 uto 点放 k 绳包下,这里是接口的泛形,我们往下看这个注解说明这个接口是一个函数式接口,他代表接口供应商,也 就说 supreme 这个接口主要是用来生产数据的。再往下看,它里面有一个 get 方法用来获得结果的,他的返回值是一个饭型,那么将来接口这里的饭型指定的是什么类型, 我们这个方法返回的就是什么类型的数据。好了,知道了这些信息之后,接下来我们回到资料来说一下 sirpline 这个接口,他包含一个午餐的方法,这个 get 方法主要是用来获得结果的,该方法不需要参数,他会按照某种实现逻辑来返回一个数据。 这个实现逻辑呢,一般来说是由那么的表达式来实现的,而且这个 supline 这个接口呢,也被称为生产型 接口,如果我们指定的接口的泛形是什么类型,那么接口中的 get 方法就会生产什么类型的数据。共 我们使用好了。了解了这个接口的作用之后,接下来我们到程序中去使用一下。来看这里我新加好了一个包,在这个包下建好了一个类,在这个类里面有三不来二这个接口的注视信息。 接下来我们首先来定义一个方法,返回一个字符串数据,也就说这一次我们要使用 supreme 这个接口来生产一个字符串数据。来 我们写一个方法啊,普瑞艾维特 ctit 克死却印方法名,我们就叫 get 死去印来一个死皮答案,这个接口将来我们要的数据是死去类型的,所以这里写一个 尺寸来起个名字 sup, 进来之后直接瑞特 sup 点 get 就可以了。好了, 这个方法我们定义好了,接下来我们在这个主方法中来调用一下这个方法,这个方法的行参是一个函数式接口,所以我们可以使用栏目的表达式来作为参数传递来认真看啊,我们调用这个方法 get 死去 来一个小括号,来一个箭头,在这里来个大括号,我们最终要的是一个字符串数据,在 这里我们就给一个字符串林青霞好了,这样我们这个方法调用就做完了,但是他最终反的是个字符串,我们在这里也没有接收啊,所以我们在这要 接收一下,接收到这个自助串之后,我 s out 一回车输出一下这个自负串,那么这样我们就通过这个 sirpline 接口来产生了一个自负串数据,我接收到这个数据之后,把这个数据在控制台输出了,右键执行,看一下控制他的输出, 七侠没有问题。好了,接着我们再来看一下这个栏目的表达式,还可以优化一下,因为这个代码块的语句他是一条语句,所以这个大括号分号,包括这个蕊叹都可以省略, 那么在这里我把它给注视掉,然后来写一下死去 s 等于该他死去。小括号来一个箭头,这里我们直接写一个林青霞就可以了, 右键执行,看一下控制他的输出,林青霞没有问题。好了,接着我们再来定义一个方法,这一次我们返回的不是字符串数据,而是一个整数数据, 那么是个整数数据的话,我们这个接口的这个发型,这里他用的应该是个引 t 卷,所以在这里我来写这个方法啊。普拉维他 step, 可这个反黑就是引 t 卷,那么 get 引 t 卷, 那么这里来写上这个接口,泛形写上引 t 字,然后这个名字叫 s u p, 那么进来之后直接是 rete s u p 点 get 就可以了。好了,这个方法写好之后, 接下来我们来调用一下这个方法啊,这一次他的返回指示引 t 指类型,所以在这里我们来一个引 t 指, i 等于 get 引 t 指, 那么这里我们来一个小括号,来一个箭头,我们直接给个注意,这次不是自负串呢,对吧?要的是一个整数数据,所以这一次如果我们给个自负串数据三十来, 我们看一下他就会什么报错,为什么呢?因为我这个要的是一个引梯这类型的数据,而你写的是个自助串数据,所以他报错了,怎么写啊? 把这个双引号给去掉,你看他就不爆错了,这样我们就得到了一个整数数据,接着 sut 一回车,把这个数据在控制台输出一下,右键直 行看一下控制台的数据,三十没有问题。好嘞,到这关于这个生产型的接口 suprel 的使用我们就讲完了。

今天给大家介绍一下一个特别好用的爱迪尔自己的借口测试的一个工具。首先呢,我们打开这个 idr, 然后呢我们找到一个,随便找到一个 ctrl, 在这个 ctrl 下面,嗯,他会有一个,哎,这样的一个小图标,点击之后呢,会有一个 january request in htp clint, 这么一个一个选项啊,我们点击 哎,他就会自动跳到一个一个点 ajtp 结尾的一个文件里面啊,这个文件呢? 这个文件在哪?这个文件在这里,他会在这里面会生成一个,然后我们在这里 里面去修改我们用羊肉的的地址,一般来说是不用修改,他会生成的话应该就是正确。然后我们加上一个注视, 然后我们就可以进行点击,然后进行一个,嗯, logo house 八零八零就可以进行一个测试了。 然后呢我们把项目 跑起来看一下,我们测试一下, ok, 请求是通的,只不过我这个接口没有加偷啃,然后导致我们有一个请求被拒绝的一个一个处理,但是请求是通的啊,没有问题啊,这里面呢,你上面会有几个 sample, 这个是我们的请求日志, 我们点一个三毛来看一下 哦,他这里面有 get request 和 post, 这个就不是从 ctrl 那边去生成的啊,这是我们应该是我们主动在这边去增加的一些一些呆萌 哦,他和他给我们增又增加了一个 get 的一个 request, 点儿 htvb 的一个 文件哦,然后 occeptor, 哦,这些都是 get 的一些请求, get 的一些请求就是接接收的参数, 然后我们来看一下 post post, 它生成了一个 post post 地址,然后加上一个 con tent type application jason, 嗯,然后他空了一行。啊,注意这个地方,他空了一行,空了一行,然后再进行一个 jc 的书写,然后后面的话又空了一行,然后 进行下一个请求的一个处理,然后还有就是我们跑一下,哎,你会发现他跑完之后呢,他会在这个地方, 哦,这还是有数据,他会在这个地方进行一个快捷方式吧。啊?我们以后可以将这些作为一个改名 id 的。 com, 飞哥, 哎,我们可以在这改名,嗯, ok, 哎,这样我们以后就可以根据业务 名字直接在这进行一个处理了。 嗯,三炮其他的应该应该就不怎么常用了,对吧?然后这里面再给大家介绍一个啊,这个,这个最大按钮,这个连接,他是说我增加一个环境变量文件啊, 我们现在应该是应该是已经有了一个环境面料的一个文件 在这个地方啊,这个是我单独出一个文件夹,然后去存放这些测试文件,哦,就是权限类的 我就都放在这里面,然后其他的我放在这里面,可以按照模块进行一个追加,这样就不会乱了。那他他本身的话,如果说我们不用文件夹的方式,他, 嗯,用这种方式自动生成的啊,就这种方式自动生成的话,他会把这个文件自动生成,在这个文件加下啊,这个文件加下,不是,从这开始,他不是我们的项目内文文件 要注意一下,所以这里面就会存在一个问题,就这里面的,嗯,文件是你打开任何一个项目他都会去存在的,这么一个文件 就比较乱,所以我们最好是自己去加一个文件夹啊,然后去除以, 那这个就是我可能我点击,点击这个,点击以后生成的一个环境变量的一个文件啊,这就是环境变量,我们还可以往继续往后加,比如说再加一个, 然后用完了是什么什么什么啊?八零九九这样,然后我们回过来再去看,哎,他就出来了一个泰斯坦的一个环境,执行他的话他就会自动去替换 这个地方, 这个 url 就是我们这个环境变量里面的这个 url, 这个 这样就可以很方便的去请求不同的变量了,不同的环境进行一个请求。 好了,今天的这个接口工具就介绍到这吧。