商圈库-Http-Http工具 | 学习笔记

简介: 快速学习商圈库-Http-Http工具

开发者学堂课程【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 客户端(主要)

2OkHttp 的使用

3)封装 OkHttp 的工具类

 

二、常见的 Http 客户端

1.浏览器

首先最常见的客户端就是浏览器,它的主要功能是比如访问一个百度,他会通过Http协议把这个网页加载出来,最重要的功能是呈现这个网页。包括执行GS、显示、加载hml,这些才是浏览器的功能

5.1.png

浏览器是可以直接访问一个 url,通过Get请求的方式去加载结果。但是,浏览器这个工具也可以搞一个 Post 请求,那么这个 Post 请求在我们之前学习 Html 的时候说过一个 form 表单

5.2.png

那么在这个工具里面,把这个文件先整理一下好,那个 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,然后封口。

5.3.png

完成整个表单后可以在文件窗口打开,打开后双击 test

5.4.png

打开了这样的页面,使用之前先打开开发者工具

5.5.png

选中 Network,然后输入 name age 点击 Submit,出现一个百度请求

 5.6.png

这个请求方式是 Post,所以我们可以写一个 Form 表单的形式,去提交一个Post请求,它的参数在最后一个位置,那么这个参数就叫做 FormData

除了浏览器以外,我们还有一个其他的工具叫做 Api Debug,它可以让你通过图形化的方式来发送Http的请求

5.7.png

5.8.png

先复制 Url 点击工具,虽然看起来是一个网页,但其实不是,可以理解为一个应用程序。接下来就可以选择用一个什么样的请求方式。我们是一个 Get 请求,请求一个路径。那么这个路径的参数我们可以在网页复制K然后给定参数和值,如上图5.9.png

这时,它会直接把两个参数拼到 Url 后面,也就是说,在Get请求方式的时候。你给定 Promise 会自动的拼到 URL 后面的,这个内容也也加载出来了,并且显示的就是一个比较好的 Jason 的一个显示的结果,格式也非常的完整,那么它可以发Post请求吗,也可以在这儿选中 Post就可以了。我们可以去 Post 同一个 URL ,但是Post请求来看一看它有什么样的结果产生, send以后大家发现这个API使用Post来调也可以。以上就是两种请求,一个是软件,一个是浏览器

在浏览器地址栏输入 Url 进行访问便是 Get 请求

 

可以用代码来发送 Http 请求,用 HttpClientOkHttp ,一个是老字号

l  HttpClient

5.10.png

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的使用

5.11.png

 

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代码精简,没有太多历史遗留问题,性能较好,现阶段使用的比较多

5.12.png

那他也使用一种类似于链式调用的方式来进行相应的调用,同时,OK http 有一个上层的封装叫做 RetrofitSpring 也有一个对应的工具,也可以使用接口的方式来发送请求,还是比较方便的。那么OK http 的代码非常的精简,没有太多历史遗留问题,性能也比较好

 

 

相关文章
|
3天前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
66 0
|
3天前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
88 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
3天前
|
JSON 数据格式
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
31 0
|
3天前
|
存储 网络协议 Go
7天玩转 Golang 标准库之 http/net
7天玩转 Golang 标准库之 http/net
7 2
|
3天前
|
XML Java 数据库
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
14 4
|
3天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
【5月更文挑战第9天】`requests` 库是 Python 中用于HTTP请求的强大工具。要开始使用,需通过 `pip install requests` 进行安装。发送GET请求可使用 `requests.get(url)`,而POST请求则需结合 `json.dumps(data)` 以JSON格式发送数据。PUT和DELETE请求类似,分别调用 `requests.put()` 和 `requests.delete()`。
30 2
|
3天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
29 1
|
3天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
16 3
|
3天前
|
数据采集 存储 数据安全/隐私保护
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法
本文介绍如何使用Lua和lua-http库抓取LinkedIn信息,强调了Lua在爬虫开发中的应用。通过配置亿牛云爬虫代理解决IP封锁问题,实现步骤包括安装库、配置代理、发送HTTP请求、解析响应及提取信息。提供的Lua代码示例展示了下载和存储LinkedIn信息的过程。实验成功展示了Lua爬虫的可行性,但也指出需考虑反爬虫策略以应对实际挑战。
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法