小白开发微信小程序19--网络API(java版)

  1. 什么是网络API

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

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

  1. wx.request

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

小白开发微信小程序19--网络API(java版)_第1张图片
小白开发微信小程序19--网络API(java版)_第2张图片
小白开发微信小程序19--网络API(java版)_第3张图片

官方文档地址: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协议把头部信息一起传递到这个网址所在的服务器,如下图所示:

小白开发微信小程序19--网络API(java版)_第4张图片

请求头包括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项目

小白开发微信小程序19--网络API(java版)_第5张图片
小白开发微信小程序19--网络API(java版)_第6张图片
小白开发微信小程序19--网络API(java版)_第7张图片
小白开发微信小程序19--网络API(java版)_第8张图片
小白开发微信小程序19--网络API(java版)_第9张图片

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

小白开发微信小程序19--网络API(java版)_第10张图片
小白开发微信小程序19--网络API(java版)_第11张图片
小白开发微信小程序19--网络API(java版)_第12张图片

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

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

  1. 创建页面

小白开发微信小程序19--网络API(java版)_第13张图片

  1. 写js代码

小白开发微信小程序19--网络API(java版)_第14张图片
小白开发微信小程序19--网络API(java版)_第15张图片
小白开发微信小程序19--网络API(java版)_第16张图片

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

你可能感兴趣的:(小白开发微信小程序,微信小程序,小程序,微信开放平台,开发语言,事件)