你有没有过这种情况,用 curl 调用了一个 api, 然后回车终端给你吐出来这么大一坨东西,全挤在银行里,你要从里面找一个数据段,眼睛直接看瞎, 带你接个管道,然后传给 jq, 再写一个点,这个点的意思是整个 json 原样输出,你看 jq 会帮你自动加缩进加颜色。刚才糊成一团的数据现在清清楚楚, 但格式化和语法高亮只是开胃菜。比如这里我们只想取这个 organization 这个字段。好,那我们把点后面的这个加字段名 organization, 你 看是不是就取取到我们想要的部分了,嵌套的也行。比如我们想取 organization 里面的 login 这个字段,那么我们点 organization 再点 login 就直接得到了,就像在代码里访问对象属性一样。再来个狠的,我把 api 换成了 contributors 列表这个请求,它返回了是一个数值,那么我写点儿方括号,点 login。 这里方括号的意思就是便利数族里每个元素,后面接 log in, 就是 取每个元素的 log in 字短,你看是不是得到了所有的这个 log in 文件名,十个字母就搞定了。然后我们还可以做过滤,比如说刚才那个初使列表太长了,我只想看最后一个,那我们可以写中括号,负一冒号括回来 就拿到了。你看和 python 列表的用法是一样的,注意到这里的输出,它仍然还是一个数组,这也是和 python 的 逻辑是一样的,列表的切片仍然是列表,我们可以加点左右括号,展开它。你看这次得到的结果是不是就不是数组了,而是很多个 map, 我们还可以重组输出,比如说我只关心前十个的 login 和 url, 那 我们可以写冒号十,然后刚才一样的点括号把它展开,然后再接一个管道,所以直接写夸括号,比如说 login url 括回来, 你看是不是就得到我们想要的这个字段了。所以总结就两件事看,乱成一坨的 json api 不 用再复制到浏览器里的 json prettier 了,提取字弹也不用再写脚本了,一个 jq 命令全部搞定。
粉丝1.2万获赞4.9万

哎,你是不是也遇到过这种情况,明明就是想快速测一下 api 或者下载个小文件,结果呢,非得打开一个又大又慢的图形界面工具。说真的,有时候这种工具真的太拖节奏了。 如果你也有这种烦恼,那 curl 简直就是为你量身定做的,你可以把它想象成一把互联网世界的瑞士军刀,小巧锋利,而且功能强大到超乎你的想象。 好,那咱们就来具体看看。 curl, 它的全称是 client for url, 顾名思义,就是面向网址的客户端。这名字其实已经把它的核心任务说清楚了,就是作为一个客户端去和任何 url 地址进行数据交互。 它就是这么一个纯粹的命令行工具,只专注做一件事儿,传输数据。那么这把瑞士军刀到底有多全能呢?你看啊,最基本的上市发一个 getpost 请求下载文件,那都是小菜一碟, 复杂点儿的,比如测试和调试 a p i, 在 搅拌里搞自动化,它也完全没问题。甚至它还能处理像自定义请求头、 cookie 和身份验证这些麻烦事儿。而且啊,它支持的协议特别多,所以不管是在开发还是微印工作里,它都是一个绝对少不了的离器。 行,那咱们就先从它最基础也是大家最常用的功能说起,就是从一个网址上获取数据,或者说下载东西。 这里有三种最核心的下载方式,特别简单,如果你只是想快速看一眼网页的源码长啥样,直接 call 后面跟上网址就行了,内容会直接打在屏幕上, 那要是想把内容存下来呢?也好办,用小写的杠 o 参数,你就能自己给文件起个名字。还有一个更用,用的是大写的杠 o, 它会自动用网址里原来的文件名来保存。这在下载图片呐,安装包啊这些东西的时候就特别方便。 不过呢,你用着用着可能就会碰到一个问题,现在很多网站,特别是那种短链接,都会用重定向技术,就是把你跳到另一个地址去, 但可默认情况下,可不会自己跟着跳哦。解决办法简单得很,只要加上一个杠 l 参数就行了。这下就等于告诉克尔,哎,哥们,要是服务器让你去别的地方,你就跟着去,别犹豫。 说真的,在现在的网络环境里,这个菜数基本上是必加的了。好的,刚才说的下菜,那都只是开胃小菜,接下来的才是重头戏。咱们来看看 karl 是 怎么发挥它真正的威力,也就是和 api 对 话。 跟 api 打交道呢,我们最常用的方法就是 get 和 post。 你 可以这么理解, get 呢,就好比是跟四服务器说,欸,能把那个数据给我吗?你是去要东西的。而 post 呢,就是跟四服务器说,欸,这是给您的数据,你收一下,你是去送东西的。 call 默认就是用 get, 不 过要让它发一个 pose, 请求也同样非常简单。咱们来玩个搭积木的游戏,一步一步拼出一个完整的 api 请求。第一步也是最基础的一块积木,当然就是目标地址了。我们先把 call 命令和 api 的 网址给放上去 好,第一块积木放好了,现在是第二块,我们得明确告诉服务器,咱们想干嘛, 加上一个杠 x post 参数。这就好比给咱们的请求贴了个大大的标签,上面写着 post, 让服务器一眼就知道我们的意图。 ok, 现在地址有了,方法也有了,但是服务器还不知道咱们要送的这包货到底是什么类型的。 所以这第三块积木就来了,请求投,我们用杠 h 参数告诉服务器 content type 是 application json。 这就等于是在说,注意啦,我接下来要给你的是 json 格式的数据哦。 最后,也是最关键的一块积木,就是咱们要发送的数据本身,用 dd 参数把咱们的 json 数据包给它放进去,你看齐活了,一个完整规范的 jsonpos 请求就这么打好了,是不是特别有条理? 当然了,在现实世界里,网络通信不总那么顺利,万一请求失败了,我们心里肯定会想,到底哪儿出错了。这种时候, curl 自带的调试工具就派上大用场了。 排查问题的第一招就是让 curl 变得啰嗦一点,你只要加上一个杠微参数,它就会把整个通信过程的来龙去脉全都给你打印出来。 想看懂这些?睿智很简单,你只要记住,大于号 v 开头的是你发出去的东西,小于号 k 开头的是服务器回复给你的,而星号 s 开头的是一些连接的额外信息。 有了这个,你就等于有了 x 公式,也能把整个过程看得清清楚楚。其实 curl 给你准备了好几种不同级别的放大镜, v 呢,就适合绝大部分的日常调试。如果你只是想把响应头和响应内容一起看,那用 i 就 更方便。可要是真遇到什么疑难杂症,需要进行最底层的分析,想看看每一个字节是怎么传输的?那杠 trace 就是 你的终极武器了。 好了,讲到这里,恭喜你,你已经解锁了一项非常强大的命令行新技能了, 咱们来快速回顾一下。现在你已经知道怎么用杠 o 和杠 o 高效的下来文件,直到用杠 l 来处理网页转跳。 更厉害的是你学会了用杠 x、 杠 h 和杠 d 像个专家一样和 api 交互。当然最重要的你还学会了怎么用杠 v 像个侦探一样去调试网络问题,这些可都是你在命令行令世界里施展超能力的基石啊! 那么现在问题来了,既然你已经拥有了直接从中端和整个互联网对话的超能力,你第一个想用它来自动完成的任务是什么呢?是每天早上自动抓取一份天气预报?还是写个脚本来帮你盯着你喜欢的商品有没有降价?快在评论里分享一下你的想法吧!

首先进入 a p ipose 官网,目前呢,我们支持了外部版和客户端多端登录,大家可以按需选择。我们的工作台可以大致分为请求区和小硬区两个主要板块。首先呢,我们可以先发送一个接口请求,像这样, 然后呢,在请求区进行配置,最后再点击发送,就可以在享用区看到接口的返回结果了。 我们不仅可以在响应区查看接口的返回数据,请求头响应头哭,可以状态码、请求时长等等数据,还可以从现有的响应导入成功错误响应视力以及一键提取自断和描述。 并且呢,在你提取出的字段里添加描述也会保存到我们的参数描述库里,之后再用到它的时候就不用反复填写啦。关于 参数描述库呢,我们以后也会单独出一期视频详细讲解一下。好了,我们继续进行。当我们完成了一次接口调试,想要生成一份接口文档的时候,我们要怎么办呢?这个时候可以点击分享文档,复制文档地址并打开就可以看到一份规范漂亮的文档啦。 当然啦,我们也支持分享整个项目目录以及自定义接口分享,还可以设置文档的权限和有效期,保证数据的安全性。 好了,恭喜你体验到了第一个接口文档诞生的旅程, apple pose, 同时节省了前后端的开发以及沟通的时间。除此之外呢,我们还有更多更好的功能等你来体验。

你们有没有过这种体验,就是想快速测一下某个网站或者 a p i 接口,好消息是有一种方式可以告别这种繁琐。今天呢,我就带你认识一个命令行礼的神器,它能让你的网络测试效率嗖的一下直接翻倍。 让我们来认识一下这位隐藏在命令行列里的网络宁者,他就是 core, 他的全称是 client for url, 说白了就是网直的客户端, 你可以把它想象成一把网络世界的瑞士军刀,又小又快,功能还特别强大,而且它几乎在所有的 linux 和 macos 系统里都是自带的,咱们来看看它的能耐有多大啊! 抓网页内容,测 a p i 下文件,自动传数据处理,登录验证,甚至上传文件,基本上只要是跟网络数据传输有关的事, carl 都能插一脚。 光说不练假把式,咱们直接通过几个实战任务,看看它到底有多神。好了,我们先从最基础也是最常用的几个操作开始,放心,这些核心技能一旦掌握,你每天的工作都能用得上。 来。看第一个任务超级简单,直接输入 curl, 后面跟上一个网址回车,你看它就像浏览器一样去访问了这个地址,然后把整个网页的 html 原始代码儿哗啦一下全显示在你的终端里了,是不是特别直接,非常适合快速扒一下片面结构。 当然了,刚才那一堆代码直接刷屏,眼睛都看花了,不太实用对吧?所以我们可以加一个杠 o 参数,就是 output 的 意思,后面再跟一个文件名, 这样科鲁就会把抓到的内容乖乖的存进这个文件里,方便我们之后慢慢看, 来了来了,这个可是重头戏。测试 api 最常用的就是 pos 的 请求了,我们用杠 x pos 的 来告诉服务器,我要用 pos 的 方法,然后用杠 d 参数,也就是 data 来发送我们的数据。 就这么一行命令,完美模拟了。用户在网页上填完表单,点击提交的都需要身份验证, 怎么办呢?用杠 h 参数,也就是 header, 我 们可以用它来添加任意的 http 请求头,比如说咱们在这里加一个 authorization 头,把我们的访问令牌儿带上服务器一看,哦,是自己人,这不就能访问受保护的自然了吗? 上传文件同样小菜一碟,用杠 f 参数,后面跟上表单的字段名,比如叫 file, 然后是一个 at 符号,再加上你要上传的本地文件名,搞定, 客人就帮你把文件传到服务器了。你说这不比在网页上点那个选择文件按钮快多了吗?好的,基础打牢了,咱们得来点高级的了。 下面这几个技巧能让你用 curl 用的更像个老手,你肯定踩过这个坑。访问一个 http 的 网址,结果它告诉你永久移动到了 https。 默认情况下, curl 碰到这种情况就停了,不会自动跟着跳。 这时候你只需要加上一个 l 参数,也就是 location, 它就会变得很聪明,自动跟着重定向信息,一路找到最终的目的地。 有时候调试接口特别小,这 curl 和服务器之间到底是怎么对话子对吧?用这个杠为叉就是 verbos 罗嗦模式,它会把整个通行过程,从你发的请求头,到 server 回的响应头,所有细节都给你打印出来,这对于找问题来说,简直就是开了上帝视角, 最怕啥?最怕写个脚本,结果因为网络不好,一个请求卡在那不动了,整个程序都僵住了。这时候杠 max time 这个参数就是你的救星, 给他设个超时时间,比如说五秒,如果五秒内请求还没搞定, carl 就 会果断放弃,不让他拖累整个流程。好了,干货说完了,唠叨几句,帮你避开几个新手常钓的坑。 来,咱们快速过一遍啊!第一,遇到跳转的网址,别忘了杠 l。 第二,发 pos 请求数据一定得用杠 d 带上。 第三,如果你的 url 里有 and 或者问号这种特殊字体,记得用引号把整个 url 包起来。最后也是最重要的,下载图片压缩包这种 r 形式文件千万要用杠 o 保存,不然你的端端就会乱码到让你怀疑人生。

apipos 中 api 调试模块下,我们可以选择调试的环境,不同环境的前置幺二二也会在这里体现。我们可以点击去修改快捷进入环境的管理弹窗,点击发送即可看到接口响应的结果。 这里的断言与交宴就是交宴接口是否符合我们的预期,我们可以选择不同的期望来进行交宴。如果交宴的是失败期望,那肯定就会爆错,因为我的失败期望是返回差妙格式,而实际上它返回的是 jason。 那如果我期望 msg 返回的数据结构是艾瑞,那这个时候我再去调试会怎么样呢?显然他会告诉你你的 msg 数据类型不正确,以期望的艾瑞不符。好,我们先怀孕一下原来的期望。如果这个时候我把验证码的参数值删掉,他是不是就无法获 取到掏啃值了?那他的交宴就会提示你找不到必须属性掏啃。那如果你在期望里不把掏啃设置为避天象,那么他就不会教验掏啃是否必须存在。 我们可以把刚刚的验证码未填视力导入到失败视力中,这里 appos 会自动提取参数及描述。现在我们输入验证码 再点发送。显然这就是一个成功的响应势力。在生成了这两种势力后,我们点击保存,刚刚编辑的内容就会同步到我们分享出去的文档里了。

这几天晚上八点都在分享莱若加上 vivo 构建系统管理平台,很多人在直播间里边问我使用的 api 测试工具,那现在我给大家做一个分享,现在讲课主要使用的是 api fox 啊,那么随着这段时间他的版本升级,这个界面我觉得越来越好看,然后功能的话呢,越来越丰富。 比如说现在的这个项目的话呢,就是咱们晚上讲的这个 leo 加 vivo 的高精系统平台。 在这里边的话呢,我们就可以增加接口的主,然后在这块的话呢,我们可以通过修改文档,这个操作过程啊,跟 pose 慢或其他的都非常的相似啊。 在这里边的话呢,我们可以添加自断,然后呢也可以根据想象结果呢来配置想象数据。同时的话呢,我们也可以定义投信息,当然也可以定义全局的请示投信息。然后呢我们可以直接直接点击运行, 之后的话呢,也可以把这个运行保存成测试的用力。同时的话呢也支持这个前置和后置方法,比如说这块就是前置来定义一个全局的一面啊,后置的话呢,我们可以把 返回的数据给他保存成环境变量。呃,那么当然的话呢,我们也可以定义测试的环境,不同的测试环境包括全局参数定义,比如说投信息的定义,你可以根据你的不同环境来配置不同的环境变量,同时的话呢,我们也可以定义全局的 toky, 是吧,在这块也可以非常方便的定义, 那每种测试工具啊,定义方式不一样,但实际上的话呢,大概其他功能大家都差不太多,再一点的话呢,他就比较方便的,这个文档我们可以把编写的接口文档啊给他进行分享,你可以把这文档啊,就像百度云一样,你可以设置密码进行访问,你也可以全局公开进行 法文。那现在我在购,呃,网上讲就是 leo 加 vivo 构建系统平台,后期的话呢,就要利用这个这个文档我们可以开发桌面端应用,手机还可以用,包括小程序应用。同时的话呢,我们也可以把这个测试用用力啊,给它组织起来,组织之后的话呢,可以进行这个用力的编组,是吧?你可以变成很多个主, 然后呢对这个主进行测试,比如说我们这块测试这个,那同时的话呢,就会跑。我们两个测试用力 之后的话呢,我们也可以把这个你编好的这个用力的主啊,给他编好成套件,让他们一起来进行跑。呃,然后这个 apifix 的话呢,他是针对现在绝大多数的这个 api 测试工具啊,对个人用户都是非常友好的,你可以免费来使用 api。 fox 也是这样,那他的 size 存储的话呢,你可以这个免费来使用,不限接口数量,不限 请求次数。所以大家知道我在讲课的时候呢,基本上都是在讲一些开元免费的软软件,所以免费度越高的话呢,那我就更推荐来讲他。比如说我在讲视频的时候,绝大多数都使用 vs 扣的,因为 vs 扣的大家下载的时候会非常的方便, 而且他是免费的,你也不用考虑付费购买的问题。那 apf 的话呢,也满足这一点,所以呢我来使用它。 那除此之外的话呢,有 api pose 吧,这也是一个国产的这个测试工具。这个软件其实大家的总体功能啊,都差不多,有一些细节上的不同, 我就不再多多介绍了。其实从界面上包括功能上啊,大家其实都是差不太多啊,而现在界面呢,也也都是越来越漂亮啊,所以这块的功能呢,我就不过多介绍了。那再一个的话呢,就是比较老牌的,大家都很喜欢用的,包括我 个人也很喜欢用 postman。 postman 有一个问题啊,就是因为我在讲课的时候会考虑用户群体,第一点你会看到他的其中速度,你已经看到了,相对比较的慢。 再一个的话呢,他默认是没有中文语言环境,所以呢,大家也要用其他的方式, 比如说去 gtop 里边找别人修改过的那个中文语言的文件,你把它要替换到你 pose 曼的相应文件,这个时候呢,你可有中文语言的环境?那这样的话呢,在使用上会多一步操作,对这个想要拥有中文环境的用户来讲,他没有那两个友好。 再一个的话呢,就是启动速度相对来讲的话呢,会慢一点。那功能上的话呢,其实大家都是差不太多,那么我原来讲直播的时候,讲项目的时候大量都是在使用普斯曼,那现在的话呢, 就是考虑呃用户的区,那现在就考虑用户啊,可能更喜欢中文的,所以呢,我现在使用的是咱们国产的,是吧? a p i phone, 是啊,或者 a p i post, 所以这些软件呢,对咱们个人用户非常友好。然后呢,他们又在不断的进行迭代更新,增加新的功能,优化用户体验,对我们来讲是非常有好处的,对大家来讲,对吧?所以任何一款软件的话呢,都能满足我们的绝大多数的应用。 那么你在实际写项目时候的话呢,还要在项目当中进行测试,是吧?你也不能完全的依赖几个 api 测试工具。 呃,虽然这些工具啊,他也提供了一些测试时的一些断言,但是的话呢,在软件当中,在编程时候做单元测试,我觉得应该会更好一些。那你们都在使用什么样的测试工具呢?我们可以在评论区里边一起来讨论。

嘿,今天我们用六十秒搞定超好用的 curl 命令,有没有想过不用开浏览器,直接从中端搞定数据传输来认识一下 curl, 一个能让你直接和服务器对话的命令行工具。 好,咱们先试试最基本的,抓取一个网页的内容,很简单,就 curl 夹上网址,瞧,内容直接就出来了。 那要是想把东西下载下来,存成文件呢?这个也简单,加个杠 o 就 行,它会自动用原来的名字保存文件。好,不光是下载,我们还能发送数据。这就得用 post 请求了, 看,用杠 x post 指定动作,然后用杠 d 把你的数据塞进去,搞定。 来,给你一份 curl 的 速查表,记住这几个就够用了。看获取内容、下载文件、发送数据,关键的都在这了,现在 get 和 post 你 都会了。第一个想去玩哪个 api?

你这 pose man 咋长得跟我用的那个不一样呀?我这不是 pose man, 但是的确跟你很像,我这叫 api pose 是我新发现的一个工具,你看你可以看一下它这个界面的确给你的,你看颜色啊什么的啊,包括它这个界面功能,你看这只是一创建一个 pose 的球球,对不对 啊?我这里是这个请求参数啊,点击发送按钮,同样跟 pos 曼一样,会有响应的数据,对不对?响应的数据,但是这个比 pos 曼强大的是一个点,是吗?你看这里可以管理这个接口的目录,对,不同目录底下创建不同的接口,你明白吗?这是一个点啊,还有一个点他有个团队协作的功能, 其实你你现在也是测试,在公司就要开发流程当中,你看后端人员提供接口,对吧?提供接口文档给前端,前端开发,前端开发上,然后测 测试,你测试的时候也是验证结果了,对不对?所以说这个需要咱们三同一个协作,那就这个团队里边,我创建一个项目, 咱们三方都在里边,他后端比如说要调整接口,他在那边去改的时候,哎,你我咱们同步就可以在这边看到这个动态的修改的过程, 不存在说因为他改了,我不知道这个更新的这个东西啊,还有一个点啊,我觉得特别好,就是他还可以一键生成文档,你看 这有个分享按钮,点击分享按钮的时候,他会生成外网链接跟内网链接,来复制下这个外外网链接,复制外网链接发一下,你看他就把我刚才 刚才演示在那里边创建的所有的接口,就会生成这么一个,你看接口文档,这直接像个网站一样,这么一个接口文档,你看这个接口文档里边基本的接口请求 参数,请求参数享用的参数的自带描述,非常详细。我觉得这个这个功能就特别好了啊, 帮助服务端的小伙伴就减胜了,比那个我们平常用那个死歪一个就清晰多了好多了。还有个是你,你测试用的,你看他有个流程测试,你应该知道吧?嗯啊, 你看就是刚才你在那边创业的接口,比如说你登录接口,登录完以后你才能用新闻列表,对吧?所以说你把它两个加进来,然后点击开始测试,你看他会先请求登录接口,登录接口请求完了后,他会自动的给这个新闻接口去带上 tok 啊,带上 tok, 然后 这个结果请求冲冠,那足以说明他两个的关联关系是正确的。所以我觉得这个你们这个,呃,做这种流程测试的时候会很好很多,你知道。

在之前的课程当中,我们通过百度 ip 的接口实战,以及需要设置投遇的腾讯课堂的这样的一个评论接口的操作实战,学习了 get 的方法啊, h a p 方法当中最常用的方法之一, get 这样的一个方法的请求应该如何去发起操作?那么 get 的接口请求我们会注意到它最大的一个特征在于什么呢?其实我们并不需要去填写 接口当中的四大要素其中的参数这一栏,因为所有的参数都已经自动的携带在了 uil 当中,我们要做的事情其实就是去编辑参数的这个值,对吧? 方法参数、 uil 以及投域这四大信息是我们说到的接口请求当中的四要素,而这个地方啊,其实 get 方法 我们需要关注的只有方法 uil 和 hades 请求的参数在 uil 里面已经携带了,而 uil 的一个基本的构成,前面的这一段 h a p s 表示的是使用的协议 sb 零百度点 com 呢,这个表示我们使用的这个服务器他自己的域名,也就是我们用到了百度他的这个服务器,服务器上面呢,会去存储一系列的资源,对吧?用到的这些资源请求的地址就来源于从这个服务器下面去找到 对应的我们需要去请求的 api 点 php 这样的一个接口,他是存放在这个文件夹下面的 api 点 pht 这样的一个资源路径的位置,然后问号之后啊,问号这个位置表示前面的是我们的接口请求的地址,而后面的呢,就是相应的参数,对吧?这个相应的参 格式大家已经非常的清楚了,这就是 get 这样的一个 h e p 方法的接口,它的一个最大的特征,而如果我们遇到了 post 这样的一种 另外的一个 h a p 方法当中最常用的接口的时候呢,就一定需要去注意 h a p post 的这种方法在接口传递参数的时候所使用的格式了。 ok, 首先啊,首先我们先通过一个抓包的操作来了解一下 h e p post 在进行操作的过程当中应该如何去 发起请求并且传递参数。好了,用到的这个例子呢,会使用的是特斯营学院给大家提供的一个电商的实际案例。然后呢,我们去完成一下登录 这个操作,一般来说,大家啊在网络上面去进行抓包的时候,遇到最多的呢,这种 pos 的接口就会是登录这样的一个功能,那么相应的找到 network, 我们来进行一下这个登录的操作,输入一下自己的账号密码啊, 大家呢都可以在这个网站上面来进行注册和操作的使用,但是千万不要去进行付款 的流程啊,付款的流程千万不要去做,因为没有人会给你提供相应的这个操作的。好了,那么抓到的这个信息看到的第一条 login 这条接口, 他的操作就会是一个 host 的方法。注意到啊,我们说的四大要素, u i r 方法以及呢 request headers 请求 头里面的内容,那么一定要注意到的就会是这个信息, content type 使用到的文本的格式,用到的是 application 三 w form u i r in cody 的这样的一种格式,它会将我们的参数信息作为一个表单来进行提交,那么最后大家看到的信息里面, curious dream parameters 是在我们的 uil 当中带上的这个信息,其实他表示了什么能够大致的猜出来,从 home, 对吧?从我们的首页当中进来 user 的 do log in 这个操作, 用户的登录的一个操作,然后的这个 t 呢?不知道是什么意思,对吧?这个我们不用去管它,而真正传递过来,我进行填写的这些参数,我填写的用户名,密码以及验证码,这个流程啊,全部都显示在了 form data 当中,那么这个 form data 就和咱们使用的 application 三 w form ul encoded 这一个格式是相关的,那么对应于在 postman 当中,我们如何去进行这一个参数的传递? 先去创建一个接口,对吧?我们按照四大要素的操作来进行了解。 post 使用的这个接口的地址呢? ul 地址我们从抓包工具里面贴过来, 这是我们用到的这个接口,然后呢, care repairance 不需要我们再去管它了,对吧?这个是固定的。接下来要做的操作,我们需要填写的这三个参数啊, form data 当中的这三个参数在哪里去填写呢? body 当中啊, body 作为请求体来进行传 地的这些信息我们填写在 body 里面,然后呢,根据我们刚刚看到的 content type 来进行选择,那么这个里面 body 里面进行 pose 的传递的时候,我们的这些参数的传递方式就有不同的格式。首先 now 这个 很好理解,对吧?没有任何的请求体当中的参数来进行传递。 form data 这个待会我们会看到另外的一个例子,它对应的呢,会是 multipart form data 这样的一种类型啊,这个地方 multi part form data 这样的一种类型。而我们现在用到的这个接口,其实它所使用的是三 w form u i l in cody 的这个格式,对吧?我们选择它, 那么在这里选择了 send up reform ul in cody 的之后呢, headers 里面自动的会去添加一个 content tap 对应的指定的这一条,那么来自于什么?来自 request heads 当中的这个信息啊, 所以呢,一定要注意的一点就是我们在进行 pose 的接口的参数传递的时候,参数在请求体当中,他携带的这一种方式和 content tap 投遇是密切相关的,他们两个是关联的, 所以碰到三 w form url in code 的时候,我们直接在八 d 当中去选择这种格式,同时它会自动的帮我们去添加一个 head。 好了,现在要做的事情就是我们的这三个参数给填进来,对吧? use then password, very very high code 复制填写一下 最后的一个呢, very feco 的验证码啊,验证码这里呢,用到了万能的验证码来进行操作,所以任何的验证码输入都是可以完成这一次的登录流程的。 发送一下这一次请求,对吧?现在我们该填的内容都已经填完了,现在要做的事情发送一下这一次请求,看看他的一个返回结果。 对应的呢?在我们抓包的这个过程当中啊,其实大家是看不到一个 respons 的,因为在这一次的处理流程当中,其实大家注意到的是浏览器 他会自动的完成登录之后的一个跳转的操作,他会跳转到我的一个用户个人信息的这样的一个界面当中来,所以啊,反馈信息呢,在浏览器这一端其实是被隐藏起来了的, 如果大家想要去看到更详细的一个信息呢,可以使用非洲了, charles 等等这样的一些工具去尝试了进行抓包啊。一般来说,我们自己在使用工具来进行调用的时候呢,就能够获取得到这一个返回信息,那么根据自己的接口文档当中描述来进行获取。好了, 现在我们看到的这个返回信息当中的内容啊,返回信息的内容呢,其实已经获取到了一个 result, 对吧? result 里面的 user id 是四十三,表示我至少已经完成了一个登录,那么登录进来之后,获取到了一个用户名,他的 编号是四十三,然后呢一秒来自于我所使用的这个一秒,对吧?而这一句啊,这一句用到的 unicode, 其实它表示的就是一个登录成功的信息,如果大家有兴趣的话呢,可以去进行一下这个 unicode 转 码,我们通过百度上面使用一下 unicode 的编码工具啊,转换工具来转换一下这个 unicode 成为中文,看它的结果登录成功,对吧?它其实告诉的我们就是一个登录成功的结果,只不过呢,获取到这个信息,他没有进行一个 unicode 的转码而已, 这就是我们拿到的这个内容,说明这次的接口请求已经是成功了,那么相应的啊,相应的我们可以去掉这个 format 当中的信息来进行一次发送,看它的结果会是什么, 对吧? message 会得到的是这样的一条信息,所以呢,我们其实整个的接口的请求啊,这个接口请求呢,已经成功了,对吧?测试新学院电商网站的这个接口的请求的操作。好了,那么接下来呢,我们再去了解到一个方 form data 刚刚讲到的这个当中的另外的一种格式 form data, 它的一个使用依然是找到这个网站当中啊,我们还是拿这个网站作为一个例子, 在个人信息这个菜单里面呢,会有一个上传头像的按钮,那么上传的这个操作,它其实就是用到的另外的一个 pos 的方法。 好了,我们来进行一下抓包啊,选择他,然后这一次上传完成之后,会注意到有一个新的 请求被抓到了 image 点 html, 那么结果是将 ul 啊指定了我们刚刚上传的这一张图片,上传的一张图片呢,然后 state success 拿到这个信息,那么注意到 had us 我们 需要获取的这些信息里面 ul, 对吧?请求的 ul 第一个要素,然后呢方法是 post 下面的 request headers 当中 content tap 是 multipart form data, 也就是 ppt 里面我刚刚已经写过了 form data, 它对应于的就是毛吉帕的 form data 这样的一种格式啊,它既可以发送剑指队,也就是我们刚刚看到的 三 w u i r in cody 的这样的一种格式的见值对的形式,同时它也可以去传递文件,而这个地方我们显而易见的 调用的这个接口,他就是一个上传文件的接口,对吧?他就是一个上传文件的接口,他做的事情就是去把文件进行上传,所以我们看到下面 form data 当中的内容,一个 file bannery, bannery 表示二进制的文件对应的大家其实也可以在这里 找到一个 banner, 而这个接口啊,这种格式就是用来上传文件的,在下面你只能看到一个选择文件这样的一个操作,因此啊,因此如果我们要去进行对应的这个 form data 的操作的时候呢,去进行 form data 的选择,好了,添加一个新的接口,我们来进行一下测试, 这个接口,我们的上传图片的接口,先去把 u l 贴过来啊, 然后呢 pose 的方法,相应的八底当中选择 form data, 对吧?选择 form data, 然后呢这个地方注意一下,选择 from data 的时候,我们要去上传的内容啊,上传内容,其实我在进行提交的过程当中,大家看到我只去上传了一个什么,只去上传了一个 文件,我并没有去传递其他的这些信息,所以其实这些信息我们是可以不要的,只需要一个文件,当然也可以把这个内容加上,对吧?比如说这个内拿到的内容呢,其实就是我这个文件的名字,所以我可以加上这样的一个名字内容来进行操作,对吧? 这里啊进行操作的时候呢,需要上传的是一个文件 text, 移鼠标移到这一块的时候,注意到 text 里面可以去选择一下 file, 一种呢传文本形式的键之类,另外的一种选择文件来进行传递啊,那么这个文件我们看到它这个键的名字叫做 file, 对吧?这个键的名字叫做 file, 那么 file, 选择相应的文件,咱们去找到 刚刚上传的这一张图片啊, 这个对吧?然后呢对应的里面去填写一个键之类的格式, 这个时候啊,这个时候在大家在选择的时候呢,就选择 text 和选择这种方式去填写的时候,其实是一模一样的,填写了一个键之类形式的参数进来,名字呢就叫 air test logo 点击 a p g, 对吧?就叫这个名字 好了。这一次的内容我们完成设定之后啊,完成设定之后, handles 当中 content tap, 对吧? content tap 这个地方, 它添加的是三 w form u i l in cody 的,是因为我刚刚在这里进行了一次点击啊,他自己把它给添加上去了,而我们其实需要的是什么 multipart, multipart form data 这样的一个格式来进行传递,当然不设置也没有问题,因为选择了 form data 之后, postman 他默认的知道是去进行 multipart form data 这一种格式的请求,我们发起一次请求试试看,结果啊,拿到信息,对吧? 点错了啊,一个位置拿到这个信息,就是我们看到的这一条内容, state success, 说明这一次上传已经成功了。而相应的啊,而相应的,我们刚刚说到,其实 headers 里面可以不填这个 content tap, 对吧?我们再去进行一下发送, 依然是可以完成这一次请求的。而如果大家啊,如果大家把这个 file 去掉的话,那么这一次的请求肯定会就出现一 问题,对吧?他本身是要我上传一个文件的,但是我连文件都没有给他,所以给出来的结果啊,会是 error 这样的一个结果。因此在进行 pose 的接口的一个请求的时候,大家一定要注意的就是我们传递的这一个 接口内容,它的格式以及呢大家使用的这一个接口的投遇当中, content type 它是用什么样的格式来进行指定的,因此决定了 body 当中我们应该去选择哪一个方式来进行操作啊? 里面现在已经用到了两种,对吧? form data, 而最常用的呢,会是三 w form u i l in coded 的这样的一种方式,而这个方式大家其实看到的这个内容当中就会包含一个 u i l in coded, 表示什么呢?它会将我们在这个位置 填写的内容携带到 u r l 当中去进行操作。虽然虽然对大家来说是不可视的啊,是不可见的, 你没有看到 ul 里面多出来这些参数,但是呢,其实在我们进行这个操作的时候,他是会将 ul 的这个编码进行操作的,所以在请求这样的一些参数的时候,大家也可以去把对应的这些参数填到 ul 当中去。待会呢,我们用到一个具体的接口来给大家进行讲解, 这两个接口呢,我们把它保存到另外的一个新的测试级 collections 啊,保存到另外的一个文件夹里面去之后呢,我们再来对他们进行相应的操作,叫做 testing shop, 然后把这两个啊取个名字保 存进去。一个呢是我们的登录的接口,电商登录接口 保存到 testing shop 里面,大家也掌握好这样的一个良好的习惯啊,写好一个新的请求之后呢,记得去保存一下,方便我们之后来进行对应的一个调用, 并且呢把它的名字最好是取得更加有意义一点点上登录接口以及文件上传接口啊。 好了,那么这两个接口呢,我们用到它来进行了一个 post 方法进行传餐的基本的了解,而剩下的一个我们刚刚讲到的这五大类型当中,剩下的一个弱类型,其实就是表示的使用原始的格式来进行操作啊,你 可以用 text 的方式来进行编辑,当然一般来说我们进行 text 的操作的时候,其实就用 form data 或者三 w form uil incode 的这两种形式来进行操作就可以了。那么剩下的 jason, 叉庙等等的这样的一些格式,大家如果要去进行编辑的话,就选择若来进行操作。 下一节课当中呢,这个部分我们会给大家讲到 jason 它的这种格式是如何来进行参数的传递的。那么现在啊,我们再用到一个另外的例子来给大家详细的再来讲解一下 post 这样的一种操作方式应该如何去使用它 用到的这个例子呢?会是我们在拥有云这样的一个网站上面来获取到的一个新发债券的这样的一个 pos 的接口,大家能够非常明确的看到他的一个返回的信息, 不像刚看到的这个登录和文件上传的接口啊,可能对于大家来说呢,这个获取到返回信息是比较模糊的这样的一个内容,那么对应的像这种东西,它本身是一个完整的产品当中的内容,最好呢,还是能够获取到自己的一个 用户文档,对吧?这个用户文档是最好能够获取得到的,当然进行一个练习的操作没有任何问题,对吧?所以呢,我们在给大家讲到这个例子的时候呢,用到一个更加 实力化的一个例子来给大家进行讲解啊, post 的这个接口,实战当中的拥有云来进行讲解, 用到的这个例子呢,需要大家先在拥有云这样的一个网站上面去进行一下 注册,当然不是给拥有云做广告啊,而是确实这个东西非常好用,但是如果拥有云他们愿意给我来进行一个广告费的结账的话,我也是非常乐意的,对吧? 好了,那么现在呢,我们要用到的其实就是这样的一个接口,首先我们还是去看一下拥有云这个网页上面吧, 是一个非常好用的平台啊,上面给大家提供了很多很多的通用的这些接口,而这些接口呢,其实都是 有很长时间的一个试用版,只需要大家去进行一个注册。像大家的开发可能在使用的过程当中,比如说要去查询到什么空气质量指数,他不可能再自己重新去写一个接口到什么空气质量监督局去进行获取,对吧?他可能用到的就是由这 一些开放的云平台提供的一些免费的接口来进行相应的操作啊。那么我们在进行测试的时候呢,就可以用到这样的一些接口来进行对应的练习,特意给大家找了一个 post 的方法,新发债券的要素信息查询这样的一个接口来进行操作。 那么刚刚提到的一点啊,因为他在进行使用的时候呢,必须要大家去进行一下购买的操作, 所以呢,首先先去进行一下注册和登录,那么对应的你会得到一个 a p i 扣的这样的一个值啊,得到一个这样的值, 购买的流程其实非常的简单,点击一下这个购买,然后呢,不要被这个收费给吓到了,他是有试用套餐的, 次数一百次,金额是零啊,金额是零,所以大家呢,可以去随意的进行购买,我已经买过好几次这个接口了, 因此啊,因此作为练习是非常方便的,推荐大家都能够去用到这样的一个网站来进行操作好了。呃,广告啊,也不算是广告,这样的一个推广呢,我们也给大家讲到了,那么现在来看一看用到这个例子所使用的 方法, u i r 参数以及投语啊,应该设置一些什么东西。首先说到的方法, post, 对吧? pos 的这个方法,然后呢用到的 u i r 这一场战,我们先把它给接过来, 这一次啊,我们把它存储到 read 这一个接口当中,来添加一个新的接口, 先把 ur 贴过来,然后呢方法选择 post 对吧?口语当中, headers 里面必须要带上的是一个 a p i code, 这个就是由拥有云给我们提供的啊,拥有云必须让我们提供的这样的一个信息。那么在 headers 里面加上 a p i code, 把这一长串的内容呢复制过来, 然后再看到下面的参数设置,这就相当于是一个接口文档了,是否必填?两个参数都不是必填的,那么说明什么?那么说明我们现在用到的这个填写的内容已经可以去发起一次接口的请求了,先发起一次试试看啊, 得到结果对吧?得到结果相应的会有两百条债券的信息,那 这个两百我是怎么知道的?由下面这个参数啊, size 默认两百条对吧?默认返回入库倒排序的债券条数默认两百条。那么相应的,如果我们在测试的过程当中要对这两个 参数来进行测试的话呢,就可以去设计相应的边界值等价类的这些测试用力,对吧?帮助内啊,因为这个债券简称,我也不知道他应该到底叫什么名字,所以呢,在这里我们用到进行测试的这个参数,用 size 来进行操作。好吧, 注意一下使用的请求题啊,使用的请求题在这一个文档当中其实是有描述的 content tap 三 w form u i l in coded, 所以我们在填写的时候找到 body 三 w for u i l in coded, 填写的结果应该是 size, 我们设置成为五条啊,设置成为五条,看看他返回的一个结果会是什么样的。先等一下 现在大家看到的这个沙拉蓝,其实看到这个滚动条就看得出来,对吧,一共只有五条啊,很快就已经滚动完了五条这样的信息。这是我们直接把 对应的参数添加在了三 w form ul incoded 里面,然后呢, heads 当中自动的会去添加 content tape, 只要你点了三 w for in ul incoded 啊,他马上就会去进行一下添加,不讲道理的。所以呢,有时候如果进行了误操作,大家记得手动去把它删除一下,好吧, 好了,那么刚刚说到的一个非常重要的信息,三 w formurl in cody 的这一种形式呢,它其 其实会将 size 五这样的一个参数携带到 u l 当中去,虽然对于我们来说是不可见的啊,他其实悄悄咪咪的在做这样的一个事情,所以我们可以尝试一下验证一下刚刚的这个说法是不是真的,对吧?把这一个 塞子等于五啊,这一条我们去掉,在八点里面不写的,现在重新发一次包,看看他是不是两百条,对吧?这个地方明显的看到 滚动的这个条啊,就非常非常的多,一共两百条的信息,而对应的这个时候,如果我在后面来拼接以下参数,在 uil 当中进行拼接,问号 size 等于二 设置他只显示两条的话,我们看一下这个结果会是什么样的一个结果,对吧?我没有去在八点当中设置参数,而只是在 u i 二里面带上了一个信息, 现在大家看到的注意到了吗?就只有两条得到的 size 的信息啊,我们的债券一共就只得到两条信息, 这两个参数啊,这个参数他的决定就来自于我们在 ul 当中进行的携带,所以啊,通常三 w formul in coded 的这样的一种传餐方式呢,大家如果想要偷懒的话,也是可以直接将它拼写到 post 的这个 ul 当中来进行参数的拼接的, 这一点没有任何的问题。好吧,这是我们在进行操作的时候啊,在进行操作的时候所完成的这一个接口的请求, 用这样的一种方式去完成了这个又有赢的接口相应的请求保存一下啊,保存一下,这一条接口放到我们的 real e 当中, 新发在线 save 的时候呢, save 到 re 里面吧,这一个我们就单独放一下,不放到特斯丁的商城接口里面去好了。那么最后的一个 pose 的接口啊,会给大家讲到的呢,是 jason 的一个格式的接口的传餐,那么用到的这个实力又会是一个新的例子了。 先用到这个例子啊, jason 格式的请求包包用到的接口地址,我们先去访问一下对应的这个网站, 在这个网站里面呢,同样的 post 的一个方法还是用到登录,那么大家以后看到啊,像这种需要去填写一系列信息,然后点击一个按钮来提交请 球的,基本上他们可能都是用的 pose 方法。这个时候你去抓包,可以去看一看对应的一个信息啊,好了,这个里面呢,因为我不需要让他成功的都乐登录,对吧? 所以随便的输几个电话号码啊,然后呢,验证码我也随便去写,尝试的去登录一下,然后我们看一看抓包的这个结果会是什么? 刚刚这个上面弹出了一个验证码错误的窗,对吧?然后抓到信息里面 locking quick, 我们看看 response, 拿到信息 message 当中的验证码错误啊,所以呢,这一条接口的请求呢,就会是我们需要去完成的这个操作。 依然四大要素啊,依然先去获取四大要素,那么添加一个新的接口 post 方法对吧?刚刚已经看到了 post 的方法,然后呢, request u i l 我们的请求的接口的地址 好, ur 拿到了,方法拿到了,那么接下来 headers 啊, headers 以及请求的参数,这个参数在传递的时候,大家已经注意到了,在 ur 当中没有携带任何的参数,而最下面 request payload 当中 会带上,我们需要用到这个参数。注意观察啊,注意观察,我刚刚填写的这些信息肯定是需要传递过去的,对吧? 幺五八零零零零,这是我填写的号码,扣的一二三四。那么传递的参数就来自于这一长串 jason 格式的自助串,这个平常我们经常在 response 里面看到的这个 jason 格式,对吧?用剑指对着 形式来进行区分的这种传餐方式,一个键啊,每个键都是用双引号给引起来,然后后面冒号之后跟上值,不同的键,值队之间用逗号来进行分割。所以呢,这一长串里面 就是我们需要去完成的一个请求,而对应的 request headers 里面注意到 content tap。 一旦大家使用 pose 的这种接口来进行传餐的时候,都最好先去看一下 content tap 当中指定的是什么? application jason, 对吧? application jason 这个方式怎么办呢?在我们 postman 里面好像没有这样的一个方式来进行指定,对吧?所以刚刚我们有提到啊,在弱里面这个 原始的方式当中,你可以去进行相应的一个选择,可以选择文本格式,可以选择 jason 格式, j s 格式, xml 格式以及 html 格式, 各种各样的方式来进行传餐,所以这个地方我们要用到的其实就是 jason 格式,对吧?用 road jason 格式来进行传餐的操作。 因此啊,因此进行传餐的时候,观察好 content tap, 然后呢,用到什么样的方式,你就在 postman 里面选择对应的这个 body 的传餐格式来进行操作啊。那么我们要用到的这个接口的参数呢?会是这一长串,对吧?复制一下他们 要注意到的一点啊,要注意到的一点,我们把它贴进来之后呢, 这里会告诉你一个小的红叉,对吧? best dream 报了一个错误,为什么?因为刚刚我们说到 jason 的一个字母串的格式,按照 response 当中的这种写法,每一个键它的名字都是由 双引号给引起来的,而这个地方我们抓包抓到的信息里面呢, formcod, uniq, uni, id 啊等等这一些贱名他都去掉了双引号,这是 crom 给我们做的一个操作啊,让大家能够在查看的时候呢,更加的清晰一些,但是这个同时给我们造成了困扰,需要大家自己去完成 双引号的添加,那么一个一个的把它给加进来啊,一个一个双引号,我们没有办法自己去进行添加,那么注意到写上了双引号之后呢,这个字段马上会变成紫色,对吧,表示他是一个键啊,表示他是我们 jason 这个请求当中的一个键。 好啦,逐一的把我们的双引号都完成添加之后,我们再来进行一下 加请求啊,这是我们需要去传递的参数了。 首先呢,我们先选选择一一下,那啊,不带任何参数来请求一次,看看他是不是也会得到一个验证码错误,是不是我们不填参数也能够正常的发起请求,对吧?好了,这一次发起请求的过程当中呢,他就会告诉我们 status code 五百 出现了问题啊, message 需要我们填写一个 request body, 但是没有找到,对吧?这个是我们服务器给我们的返回,所以呢,这一次的传餐其实是失败了的, 因此啊, body 当中呢,若选上这个选项啊,选上这个选项,我们再来发起一次请求,看看得到的返回信息是不是正确的验证码错误这样的一个内容,好了,这一次咱们发起这一次请 请求之后,得到的返回信息就会是验证码错误,对吧?那么到此为止咱们的 pose 这些接口啊,大家要使用的这些方式呢, 就从八 d 当中去选择请求参数的传递格式,通过什么来进行判断呢? content tap, 大家在去抓包的时候获取到的这一个投入信息里面 request head 当中 content tap 它的格式,并且呢结合最下面我们 请求题当中传餐的这一个内容,它的一个方法怎么样呈现的?按照下面这个格式来进行编写, 对应的就去选择 postman 里面 body 当中的这一个传递的方式。所以啊, post 方法的这个传餐操作,各种各样的传餐操作,就需要大家细心的 去区分一下不同的 content tap, 再来填写你指定的这些内容。好了,最后的这一个呢叫做注逻辑 登录接口,对吧?我们同样的把它 save 到 row e 里面去,那么现在我们进行的这一个实际的案例当中,就包含了好几个对应的接口了,对吧?我们已经通过七个的接口学习到了 postman 在进行接口测试的过程当中啊, 应该怎么样去完成 get 和 post 不同的方法接口请求。好了,那么这一节课咱们的课程内容就讲到这里,下一节课呢,我们会给大家来讲到 postman 当中如何去进行 断言以及环境变量使用等等的这一些操作。 ok, 那么这节课咱们就到这里,各位同学再见。


嗨,大家好,这里是能让你告别加班的 app post。 之前呢,经常看到有朋友问,为什么我在未登录或者拖机掉线的情况下不支持生成接口文档呢?现在随着 app post 六点一点一版本的发布,这个问题已经不复存在了。 四、六点一点一版本起,即是你在未登录脱机离线的状态下, a 开 pos 仍支持快速收成 a 开文档,并支持分享给同局以往的小伙伴们,今天就来为大家详细介绍一下 a 开 pos 的内网分享功能。 什么是内网分享?内网分享是指即使在无互联网或者互联网断开的情况下,只要在同一个网络环境下, a 开 pos 能支持生成同一局网小伙伴可访问的接口文档链接。 a 开 pos 支持内网分享的使用场景。在六点一点一版本中, 我们对内网分享文档功能进行了优化与迭代,即使您未登录人可以快速生成接口文档并分享给同一局网的小伙伴们进行访问,这里是详细使用场景的对比。 如果电脑是在连接互联网的情况下,可以同时使用内网分享以及正常的分享功能,但是内网分享的链接只能通过内网访问,如果处于未登录的状态,目前仅支持内网分享。正常分享功能需要登录状态才能使用,并且登录需要在有互联网的情况下才可以使用。 在只有局网的情况下,我们支持内网分享,其他人可以通过局网地址查看您分享的文档。目前国内外支持双重接口文档的工具有很多,但针对此功能, a 拍 pos 绝对是一家独秀。 appos 支持离线拖机分享文档,在使用 产品的过程中可能会遇到网络波动或者其他情况导致的不能正常连接互联网,以及部分公司可能会出于安全性的考虑或者是数据隐私性的考虑,只能使用局域网的情况。那么在这种情况下,开发人员使用接口调试工具可能会出现协作比较不方便的状况。 比如后端开发人员可能开发完接口,需要在代码中添加符合 swagger 规则的内容,然后再生成 swagger 文档,再搭建服务, 费时又费力,中间增加了很多不必要的工作。使用 a 片 pos 的内网分享,一键分享,其他人直接访问,简直不要太爽。最后微信提示一下大家需要注意的是,如果你分享出去的内网文档 其他人无法打开,可以检查一下防火墙是否为关闭状态,如果是打开的状态,那么就需要将防火墙关闭,其他人 才可以看到你分享出去的文档。当你成功调试完一个接口后,想要分享给同局网内的小伙伴时,只需要点击分享项目或者分享文档,再点击复制内网链接,就可以一键分享给小伙伴啦,两步轻松搞定! 以上呢,就是关于 a p ipod 的离线生成,我们两个介绍,如果还有什么不清楚的地方或者有什么好的建议,非常欢迎加入我们的官方社群,或者是在评论区留下你的宝贵意见。那么这期的视频就到这里啦,我们下期再见,拜拜!