开发者学堂课程【2020版大数据实战项目之DMP广告系统(第六阶段):商圈库-Http-Http工具】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/681/detail/11825
商圈库-Http-Http工具
内容介绍
一、目标和步骤
二、常见的Http客户端
一、目标和步骤
1.目标
通过这个章节,大家能够理解 Http 的本质内容,并且掌握 OkHttp 的基础使用,不是说Http只是在服务器和浏览器之间去使用,所有的只要用到这个功能的场景都可以去使用其他的工具符合 Http 的协议来发送消息。并且通过这个章节能掌握一个现代化的、好的Http的使用叫做OkHttp
2.步骤
大致分为三步,第一步是介绍Http客户端,第二步是介绍 OkHttp 的使用,第三步我们要封装一个 OkHtto 的工具类。大致分为两个视频,第一个去介绍常见的 Http 客户端,还有一个视频去介绍 OkHttp 的使用以及 OkHttp 的工具类如何封装
(1)常见的 Http 客户端(主要)
(2)OkHttp 的使用
(3)封装 OkHttp 的工具类
二、常见的 Http 客户端
1.浏览器
首先最常见的客户端就是浏览器,它的主要功能是比如访问一个百度,他会通过Http协议把这个网页加载出来,最重要的功能是呈现这个网页。包括执行GS、显示、加载hml,这些才是浏览器的功能
浏览器是可以直接访问一个 url,通过Get请求的方式去加载结果。但是,浏览器这个工具也可以搞一个 Post 请求,那么这个 Post 请求在我们之前学习 Html 的时候说过一个 form 表单
那么在这个工具里面,把这个文件先整理一下好,那个 DMP 目录,就是整个的 MP这个项目的目录。这个目录当中,我们先把 text html 给删除掉,然后删除掉这个东西以后再去创建一个新的文件,这个文叫做 testhtml
这时要编写一个 form 表单,就可以让发送一个post请求。表单的编写最外层是一个 <form 然后在里面接收一个 action 属性,在属性上输入“http://baidu.com”,随便访问一个百度的服务器就可以。然后我们要给定一个method=“POST”’,接下来补全表单,输入参数 Name:<input type=“text”确定以后要给定一个name,是我们把消息发给服务器的时候的K,这个K就叫做 name ,接下来<br>封口。
再给定一个Age,也是一个<input type= “text”,接下来 name 可以指定为“age”,最后再用<br>封口。接下来就可以给定一个提交按钮,用input来表示。它的类型比较特殊,因为他是按钮所以类型是 submit,接下来我们要给定一个value,就是默认显示的值,我们就让这个按钮显示 Submit,然后封口。
完成整个表单后可以在文件窗口打开,打开后双击 test
打开了这样的页面,使用之前先打开开发者工具
选中 Network,然后输入 name 和 age 点击 Submit,出现一个百度请求
这个请求方式是 Post,所以我们可以写一个 Form 表单的形式,去提交一个Post请求,它的参数在最后一个位置,那么这个参数就叫做 FormData。
除了浏览器以外,我们还有一个其他的工具叫做 Api Debug,它可以让你通过图形化的方式来发送Http的请求
先复制 Url 点击工具,虽然看起来是一个网页,但其实不是,可以理解为一个应用程序。接下来就可以选择用一个什么样的请求方式。我们是一个 Get 请求,请求一个路径。那么这个路径的参数我们可以在网页复制K然后给定参数和值,如上图
这时,它会直接把两个参数拼到 Url 后面,也就是说,在Get请求方式的时候。你给定 Promise 会自动的拼到 URL 后面的,这个内容也也加载出来了,并且显示的就是一个比较好的 Jason 的一个显示的结果,格式也非常的完整,那么它可以发Post请求吗,也可以在这儿选中 Post就可以了。我们可以去 Post 同一个 URL ,但是Post请求来看一看它有什么样的结果产生, send以后大家发现这个API使用Post来调也可以。以上就是两种请求,一个是软件,一个是浏览器
在浏览器地址栏输入 Url 进行访问便是 Get 请求
可以用代码来发送 Http 请求,用 HttpClient和OkHttp ,一个是老字号
l HttpClient
1. HttpClient 是早期Apache 开源的 Http 客户端
目标是模仿浏览器的所有行为,比较强大繁杂,封装的不是特别好。只有两种情况会有人使用它,一种是开发者本身不知道有其他的工具或者不想学习其他的工具,还有一种是原来有一个项目用的这个,现在在维护老项目的时候还在使用。所以实际上它已经有一点过时了
2. HttpClient 是一个 Java 客户端库
3. HttpClient 调用方式比较繁琐,性能也相对较差,所以现阶段使用的比较少了
它整个的调用方式是先创建一个 client出来,如果是 Get 请求就创建一个GetMethod,如果是 post 请求就创建一个 PostMethod。然后把对应的对象传进来,获取结果
HTTP 协议的客户端,其实就是只支持HTTP协议的一些工具,我们刚才,在浏览器当中去访问了某一个 URL,然后获取到了结果,其实最终是要在我们的 Spark 程序里访问HTTP接口,去访问高德的那个API最终还要使用代码里面的一个库来进行 HTTP的访问,我们就称之为叫做OK http。这就是http client的使用
l OkHttp
还有一个工具做OK http,是很稳定的一个工具了,它支持HTTP2.0,虽然现在HTTP2.0没有多少网站在用,但是它支持就是很厉害的一点,他如果支持HTTP2.0的话,他肯定也是支持多路服用的,这是一个很强大的一个功能,这个OK http的调用方式非常的灵活简便,比较符合现阶段的这个新框架的设计原则
1. OkHttp 是一个相对比较新(其实也很久了)的一个 Http 客户端Java 库
2. OkHttp 支持 HTTP2.0/SPDY
3. OkHttp 调用方式相对灵活简便,同时 OkHttp 有一个上层的封装Retrofit
4.OkHttp代码精简,没有太多历史遗留问题,性能较好,现阶段使用的比较多
那他也使用一种类似于链式调用的方式来进行相应的调用,同时,OK http 有一个上层的封装叫做 Retrofit,Spring 也有一个对应的工具,也可以使用接口的方式来发送请求,还是比较方便的。那么OK http 的代码非常的精简,没有太多历史遗留问题,性能也比较好