商圈库-Http-Okhttp的使用和封装 | 学习笔记

简介: 快速学习商圈库-Http-Okhttp的使用和封装。

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第六阶段)商圈库-Http-Okhttp的使用和封装】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/681/detail/11826


商圈库-Http-Okhttp的使用和封装

 

一、OkHttp 的使用

1.导入 Maven 依赖(使用之前必须先倒入Http

< dependency >

< groupId > com . squareup . okhttp З</ groupId >

< artifactId > okhttp </ artifactId >

< version >3.14.2</ version >

</ dependency >

1.png

我们先复制,打开idr把依赖加进来。等待 test 下创建一个新的 Http。我们要给两个方法。第一个方法叫做 Http,第二个叫做 json。一个测试 Http 一个测试 Json

2.png

接下来就可以使用 Http 了,我们在使用 Http 的时候需要把 Httpclient 创建出来,一般情况下创建在 let 层级下,一般有一个就行

3.png

所以我们拿到这个 client 就创建出来了。然后我们先拿到一个 URL val ,拷贝一下

4.png

请求,构建一个 requestHttp 的过程分两步,第一步是请求,第二步是响应,所以我们必须构建一个 request ,导入 newBuilder,然后制定一个 .Ur<url>, 然后指定 .method, 给定一个get,然后构建 build。最后 client 发送请求,创建一个新的请求,一般是同步的,然后就可以获得相应的结果

5.png

一般会对结果进行一个相应的IF判断,它是否是一个成功的请求

6.png

如果成功就如图所示,然后运行

7.png

8.png

这时我们拿到结果,然后它的请求是 OK 的,这时我们的请求就发送出去了。发送出去以后我们应该创建一个新的 Scala Class 叫做 HttpUtils 作为工具类,让它作为一个对象 object

9.png

获取到结果大致如图所示,但是我们在确定完URL之后增加几个步骤。在Test中拷贝有一个url

10.png

这时我们把它稍微拆分,以问号为分割,问号左边是我们要请求的 URL ,右边是参数

11.png

拆分后如图,我们有两个参数一个是K,一个是 location ,谁调用这个方法谁就应该告诉我这个经纬度。所以要把经纬度传进来

12.png

修改后如图,如果要使用字符串里的参数,应该加一个 S

13.png

接下来应该建立一个配置文件,这个配置文件,我们就暂且叫做

“?Key=bec6562dc27d1762044c1b20cc56327e&location=$longitude,39.990464

39.990464是纬度,为 $latitude,为参数传进来的。但是 key 不应该用外面传,建立一个配置文件,命名为 common.conf,明明第一个配置

Amap keybec6562dc27d1762044c1b20cc56327

14.png

参数组织完,URL 发生变化,有必要将 URL 存到配置文件中,存储进来,命名为amap.baseurl ,也是一个字符串,拷贝进来。接下来 private val baseUrl 这样的属性,对应的是 String 类型,$引用一下外部的 baseURL

15.png

三个参数确定了,从配置文件中读出baseurl,加载配置文件。

Private val confing-configFactory.new.load(resourcebasename=”common”),key也要取出来。

Private val keystring-config.getString(“amap key)

发送请求,进行try接下来,直接Catch,要这个请求这种场景下做重试不是特别的安全,因为你在这儿重试的话可能会让整体的性能变得很差,所以呢,我们不从事了,如果他有错的话,那么提示一下就可以了,Kiss1 对应 Exception

16.png

那这个 Exception,最终还是要进行一个打印的 Print,第一步发送请求,要先进行请求拿到一个 Request,有一个 Request 中的 QS Builder。指定 URL,然后build。创建出来这个 Request 以后,就可以发送请求来获取结果。

穿件一个新的工具 client,获取结果。Newcallrequest),execute执行拿到response,判断 response

首先,把这个 Request 传进来,执行完以后,我们可以拿到一个 with boss 拿到这个 Response 以后,判断这个ResponseIts successful,如果他是成功,也就是返回码,在200到这个299之间都可以都算成功.

接下就可以去获取其中的结果,结果可以通过这个 Response.Body.Train。获取到以后就会给外面了。17.png

结果应该改变,方法的结果返回一个字符串。出现报错是因为有if,走到if里面有结果,外面没有结果。不成功的时候如果报错了,务必保证必须有结果,所以要加一个Else,那当然那这个Else可以返回一个空。

如果要表达的是就是有可能有结果,也有可能没有结果的话,那么应该写上   Option。返回的结果是一个 String 类型的。我们就可以命名为叫做 resultt,返回Some ,里面是 Result。如果没有结果的话,就应该返回 none。同理这个地方,应该返回 none,而不只是打印。

这时,这一段代码才算真正地写完。

这个视频当中介绍了两个知识点 。第一个是 OK http 怎么使用,第二个这个工具类怎么进行封装。内容比较多,希望可以消化一下。

 

 

相关文章
|
17小时前
|
存储 JSON Rust
【一起学Rust | 进阶篇 | reqwest库】纯 Rust 编写的 HTTP 客户端——reqwest
【一起学Rust | 进阶篇 | reqwest库】纯 Rust 编写的 HTTP 客户端——reqwest
311 0
|
16小时前
|
存储 网络协议 Go
7天玩转 Golang 标准库之 http/net
7天玩转 Golang 标准库之 http/net
7 2
|
16小时前
|
XML Java 数据库
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
14 4
|
16小时前
|
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()`。
18 2
|
16小时前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
28 1
|
16小时前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
15 3
|
16小时前
|
数据采集 存储 数据安全/隐私保护
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法
本文介绍如何使用Lua和lua-http库抓取LinkedIn信息,强调了Lua在爬虫开发中的应用。通过配置亿牛云爬虫代理解决IP封锁问题,实现步骤包括安装库、配置代理、发送HTTP请求、解析响应及提取信息。提供的Lua代码示例展示了下载和存储LinkedIn信息的过程。实验成功展示了Lua爬虫的可行性,但也指出需考虑反爬虫策略以应对实际挑战。
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法
|
16小时前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
41 1
|
16小时前
|
JSON API 数据格式
使用Python的`requests`库进行HTTP请求
【4月更文挑战第12天】在Python中,`requests`库是发送HTTP请求的一个非常流行的工具。它提供了简单且强大的API,使得开发者能够轻松地与RESTful API或其他网络服务进行交互。本文将介绍如何使用`requests`库进行基本的HTTP请求,包括GET、POST等请求方法,以及如何处理响应和异常。
|
16小时前
|
XML JSON JavaScript
推荐一个比较好用的c++版本http协议库-cpp-httplib
推荐一个比较好用的c++版本http协议库-cpp-httplib
51 1

热门文章

最新文章