19--网络API(java版)
创始人
2025-05-28 10:02:47
0
  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代码

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

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...