19--网络API(java版)

  1. 什么是网络API

在一个网站里面发起https请求是很常见的,但是,由于小程序>微信小程序是腾讯内部的产品,不能直接打开一个外部的链接,例如,您在小程序>微信小程序里面无法直接打开网站,但是,在做小程序开发的时候,如果想调用这个网站的一个接口,这时,如何使用?因为,小程序>微信小程序里面不能直接使用浏览器,所以,只有使用腾讯给我们封装好的API wx.request(object)。

wx.request其实是腾讯封装好的一个request请求的函数,类似php语言里面的函数,在php程序里面的函数是由开发php程序的公司用c语言封装好的一个一个的函数,我们做php开发的,只需要拿过来这些函数使用即可,不需要关心函数底层代码,同样,wx.request是腾讯给我们封装好的“函数”直接拿过来用就行了,只要理解了这个“函数”里面的参数的使用即可。

  1. wx.request

功能描述:发起 HTTPS 网络请求。

官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

下面介绍几个重点参数:

1)接口地址url:

小程序>微信小程序里面的数据就是由这个url来获取的,所以,这个url接口非常重要,一般这个接口url返回的是json数据格式,这样不仅处理起来方便,而且,传输安全稳定,容易保存。所以,一般的第三方提供的接口返回的数据都是以json格式形式返回的。

小程序手册上说url是开发者服务器的接口,其含义是开发者自己的服务器和调用第三方的服务器上面上的接口url。也就是说url接口地址有两大来源分别是:开发者自己的服务器上面的接口和第三方服务器提供我们使用的接口。

可能会有问为什么会有这两个来源呢? 例如,您要开发一个快递查询小程序,这时一般都会调用第三方提供的快递接口,因为,我们不可能为了开发一个小程序而去开发一套快递系统,并添加上快递数据,但是,我们又不是做快递公司的,所以,无法实时动态的获取用户的数据信息,这些信息都掌握在好些快递公司里面,所以,要获取这样的大数据,我们只能使用这些快递公司提供的接口,来获取快递的数据。

如果对于一些小数据,例如,查询唐诗宋词,我们完全可以自己创建一个网站,然后,自己开发一个接口url自己进行调用,因为,这些数据网上多的是,可以自己采集到网站,当然,如果您的流量获取不是从百度等搜索引擎而来的话,可以采集数据放到自己网站上面,然后,写一个接口在小程序里面使用。

2)请求参数data:

当我们对url进行https请求时,实际上跟在浏览器打开一个网址是一个道理,在浏览器打开网址/index.html?id=9(此url为模拟用的),实际上是向这个域包所在的服务器发送了一个https请求,在这个请求里面使用了参数id=9,也就是请id为9的内容,这里的id=9就是这个url请求时的参数。

data值就是使用wx.request时,url里面的参数,也就是问号后面的参数

下面我们将结合一个实例来详细分析wx.request的参数的含义以及使用,最后,我们将分别用两个实例来实践使用一下这个函数。

data 数据说明:最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

对于 header['content-type'] 为 'application/json' 的数据,会对数据进行 JSON 序列化

对于 header['content-type'] 为 'application/x-www-form-urlencoded' 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

3) 请求的 header:

https请求的头部header是在用户打开小程序,然后,请求url时一起传到url所在的服务器时的头部信息,如果学过http协议的话,这个就好理解了。

例如,我在火狐上面打开,就相当于对这个网址所在的服务器作了https请求,在请求这个网址所在的服务器时,会通过http协议把头部信息一起传递到这个网址所在的服务器,如下图所示:

请求头包括host、User-Agent、Accept、Accpt-Language、Referer等,请注意这些头部信息与您请求某个网址是不尽相同是有差别的。

在使用wx.request时,我们就可以使用header来添加请求头部信息,把请求头信息一起传递给服务器(例如,请求时,就会把这个请求头发送给这网站所在的网址)。

也就是说我们请求一个网址,实际上一起跟着这个网址传递到服务器的还有“请求头”,只是我们看不到罢了,但是,实际上是发生了,如上图所示。

当请求完信息后,服务器再通过http协议把请求的信息返回给请求的用户(也就是打开网址的用户),此时,有一个“响应头”返回给用户,只是用户感觉不到看不到罢了。

从上面可以知道请求头和响应头是用户在打开一个url时,相当于向url所在的服务器发送了带有“请求头”的请求,等服务器处理完数据(例如,查询数据库数据)后,就会通过一个“响应头”把一些重要信息返回给用户,当然,用户不知道这些信息,也看不到。

4)函数success:

当一个https请求成功时,小程序就会自动触发这个返回成功信息的函数,这个函数是腾讯自己封装好的,而不是我们自己去写的。

这个函数获取的是从开发者服务器返回的数据(一般为json格式),因为,获取到的数据就是我们要渲染到小程序页面的数据,所以,这个非常重要

  1. 搭建java版的webapi接口程序

开发工具:IntelliJ IDEA 2019,创建spring boot项目webapidemo

1.创建spring boot项目

2、测试接口,启动spring boot项目

以上三个接口测试使用正常

3、小程序>微信小程序页面访问后台api

  1. 创建页面

  1. 写js代码

小程序页面成功请求到了后台数据,说明运行正常,符合要求。


http://www.niftyadmin.cn/n/152145.html

相关文章

判断Android 应用是否处于Debug模式的2种方法

判断Android 应用是否处于Debug模式的2种方法 我们有时想在代码中,判断应用是否是调试版本,以此来屏蔽或者做一些特殊处理,例如,1. 打印日志;2. 如果是 Debug 模式下的崩溃信息,我们要特殊标记出来等。 那…

腾讯云云服务器标准型S5性能配置简单测评

腾讯云服务器标准型S5实例CPU采用Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,主频2.5GHz,睿频3.1GHz,标准型S5云服务器基于全新优化虚拟化平台,配有全新的Intel Advanced Vector Extension (AVX-512) 指令集&#…

JS面试题收集(持续更新好中...)

1.JavaScript 中的垃圾回收机制 定义:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。 JavaScript在创建对象时会为它们分配内存,不再使用时会自动释放内存,这个过程称为垃圾收集。 四种常见的内存泄…

Django中数据库保存save()源码分析

环境: win10 、python 3.6.5 django 1.11.8 背景: 1、数据库记录更新;2、数据库记录创建;3、创建一条已存在该主键的记录 1、3实现了数据库记录的更新;2实现了记录的创建; save实现的原理是什么&#xf…

Python|数组|动态规划|哈希表|双指针|字符串|单选记录:杨辉三角|电话号码的字母组合|验证回文串

目录 1、杨辉三角(数组,动态规划) 选项代码 2、电话号码的字母组合(哈希表,字符串) 选项代码 3、验证回文串(双指针,字符串) 选项代码 1、杨辉三角(数组…

spring知识点汇总(一)

前言 汇总spring相关技术点 spring IOC理解、原理与实现 控制反转 原来对象是由使用者来进行控制,现在使用框架可以把整个框架交给spring来帮我们进行管理。 DI: 依赖注入,把对应的属性值注入到具体的对象中,@Autowired,populateBean完成属性值的注入 容器: 存储对象,使…

PMP考前冲刺3.15 | 2023新征程,一举拿证

题目1-2:1.某位团队执行主管正在检查一张图表,对他管理的四个敏捷团队在上一个迭代里的速率进行比较,你认为据此推断哪个团队生产力最高的方法可靠吗? A. 不可靠,速率本身并不是用以横向比较团队绩效的指标。B. 不可靠…

MySQL索引底层数据结构算法、优化以及锁与事务整理

目录 一、索引数据结构实现: 1.1、二叉树 1.2、红黑树 1.3、Hash表 1.4、B-Tree结构(BTree)