商圈库-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 怎么使用,第二个这个工具类怎么进行封装。内容比较多,希望可以消化一下。

 

 

相关文章
|
4月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
84 4
|
4月前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【7月更文挑战第31天】互联网的发展使网络编程成为软件开发的关键部分. Python以简洁、功能强大著称, 在此领域尤显突出. `urllib`作为标准库, 自Python初期便支持URL处理, 如读取URL (`urllib.request`) 和解析 (`urllib.parse`). 尽管API底层, 但奠定了网络编程基础.
61 4
|
1月前
|
JSON 网络协议 网络安全
详解新一代 HTTP 请求库:httpx
详解新一代 HTTP 请求库:httpx
61 1
|
2月前
|
前端开发 JavaScript
|
2月前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
116 3
|
2月前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
53 2
|
2月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
70 3
|
2月前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
79 8
|
2月前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【9月更文挑战第9天】随着互联网的发展,网络编程成为现代软件开发的关键部分。Python凭借简洁、易读及强大的特性,在该领域展现出独特魅力。本文介绍了Python标准库中的`urllib`和第三方库`requests`在处理HTTP请求方面的优势。`urllib`虽API底层但功能全面,适用于深入控制HTTP请求;而`requests`则以简洁的API和人性化设计著称,使HTTP请求变得简单高效。两者互补共存,共同推动Python网络编程进入全新纪元,无论初学者还是资深开发者都能从中受益。
51 7
|
4月前
|
JSON Dart API
Flutter dio http 封装指南说明
本文介绍了如何实现一个通用、可重构的 Dio 基础类,包括单例访问、日志记录、常见操作封装以及请求、输出、报错拦截等功能。
112 2
Flutter dio http 封装指南说明

热门文章

最新文章

下一篇
无影云桌面