当前位置: 首页 > news >正文

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代码

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

相关文章:

19--网络API(java版)

什么是网络API在一个网站里面发起https请求是很常见的,但是,由于微信小程序是腾讯内部的产品,不能直接打开一个外部的链接,例如,您在微信小程序里面无法直接打开网站,但是,在做小程序开发的时候…...

ElasticSearch - 分片内部原理之动态更新索引、近实时搜索、持久化变更、段合并

文章目录01. ElasticSearch 倒排索引是什么?02. ElasticSearch 倒排索引为什么是不可变的?03. ElasticSearch 索引文档原理?04. ElasticSearch 如何动态更新索引?05. ElasticSearch 文档的新增、删除、更新?06. Elasti…...

模拟数据采集卡之ADCTDC 模拟时间/数字转换器组合应用选型指南

简介 产品组合包括一系列多功能时间到数字转换器(TDC)和模数转换器(ADC)。我们的许多客户的应用场景依赖于对飞行时 间(TOF)的测量。该系列产品非常适合用于质谱系统(TOF-MS),光学相干断层扫描(OCT),荧光寿命成像显微镜(FLIM), 时间相关单光子…...

R语言编程基础

文章目录安装运算符判断函数递归安装 根据自己的操作系统,下载R语言环境后,安装,并将安装路径加入到环境变量,即可从命令行进入R环境 >rR version 4.2.2 (2022-10-31 ucrt) -- "Innocent and Trusting" Copyright …...

2023-03-15:屏幕录制并且显示视频,不要用命令。代码用go语言编写。

2023-03-15:屏幕录制并且显示视频,不要用命令。代码用go语言编写。 答案2023-03-15: 使用moonfdd/ffmpeg-go和moonfdd/sdl2-go库来实现屏幕录制并显示视频,大体流程如下: 1.使用libavdevice库中的AVInputFormat&…...

STM32外设-DMA

1. 简介 DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设…...

【面试题】面试官:如果后端给你 1w 条数据,你如何做展示?

最近一位朋友参加阿b的面试,然后面试官问了她这个问题,我问她咋写的,她一脸淡定的说:“虚拟列表。”大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面…...

第十二届蓝桥杯省赛详解

试题A:空间 1B是8位,32位二进制数占用4B空间,1MB2^10KB2^20B 那么可以存放32位二进制数的个数为256*2^20*8/3267108864 试题B:卡片 分析:因为数据只有2021,所以直接模拟即可 结果为:3181&…...

ssh创建秘钥对

1. 使用ssh-keygen 生成秘钥对 [root6zix89b87qmvuv ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 按回车键或设置密钥的存储路径 Enter passphrase (empty for no passphrase): 按回车键或设置密钥的存…...

JS中sort()方法返回值?

参考 https://segmentfault.com/q/1010000043489928 精辟解释 就是说 sort() 会修改原数组项的排序,sort() 结束后会返回一个数组结果,这个结果其实就是原数组。并不是说会返回一个新的数组。 原理讲解 JS 分为栈内存和堆内存,栈内存可以…...

07从零开始学Java之如何正确的编写Java代码?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在上一篇文章中,壹哥带领大家开始编写了第一个Java案例,在我们的cmd命令窗口中输出了”Hello World“这…...

Python学习笔记14:网络编程

网络编程 几个网络模块 模块socket # 简单的服务器 import socket s socket.socket() host socket.gethostname() port 1234 s.bind((host, port))s.listen(5) while True: c, addr s.accept() print(Got connection from, addr) c.send(Thank you for connecting)c.…...

初入了解——什么是VUE

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…...

代码规范(C++)

1.命名规范 1.目录/文件 字母、数字、下划线构成,不同单词用下划线隔开。 2.函数/接口 小驼峰命名法。 3.命名空间 字母、数字、下划线构成,不同单词用下划线隔开,但是尽量只使用一个单词。 4.结构体/类 大驼峰命名法,不包…...

React教程详解四(hooks、pureComponent、Context通信、错误边界、children props与render props)

前言 hooks是react16.8.0版本新增加的新特性/新语法,最大的特点是可以在开发者在函数组件中使用state以及其它React特性,下面分别对其介绍~ React.useState() state hook能让函数组件也可以拥有state状态,方便其进行state状态的…...

【Spring从成神到升仙系列 二】2023年再不会 IOC 源码,就要被淘汰了

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…...

菜鸟的进阶--手写一个小型dubbo框架

1.rpc调用流程2.组件1.Redis注册中心3.编解码/序列化在本例的Netty通信中,由于每次调用rpc服务都要发送同一个类对象invoker,所以可以使用Protobuf。但是在接受方法调用结果的时候就不行了,因为我们无法提前确定对方方法返回结果的类型&#…...

js逆向爬取某音乐网站某歌手的歌曲

js逆向爬取某音乐网站某歌手的歌曲一、分析网站1、案例介绍2、寻找列表页Ajax入口(1)页面展示图。(2)寻找部分歌曲信息Ajax的token。(3)寻找歌曲链接(4)获取歌曲名称和id信息3、寻找…...

为什么软件测试面试了几个月都没有offer,从HR角度分析

首先,我觉得你在软件测试面试的过程中,逻辑比较混乱的最大一个原因是,说明你没有形成一个一个整体的体系。 导致你说的时候很多东西都杂乱无章。 我个人认为软件测试,其实开始首先进行的是一些需求的分析工作,之后呢…...

DC-7 靶场学习

文章目录信息搜集账号密码获取修改密码反弹shell得到flag信息搜集 首先获取目标ip。 arp-scan -l nmap -sP 192.168.28.0/24得到目标ip为: 192.168.28.139先访问页面。 翻译一下。 欢迎来到 DC-7DC-7引入了一些“新”概念,但我会让你弄清楚它们是什么…...

高海拔环境下的硬件设计挑战与GPS定位故障分析

1. 从数据记录到真实体验:高海拔环境下的技术挑战作为一名电子工程师,我习惯了在实验室里与精密的仪器和数据打交道,一切都在可控范围内。但当你带着自己设计的设备,踏上非洲之巅乞力马扎罗的征途时,现实会给你上一堂生…...

WPF中OxyPlot不同图表的使用

在 WPF 中使用 OxyPlot 实现不同图表,核心在于创建和配置PlotModel对象,并将其绑定到PlotView控件上进行显示。通过向PlotModel中添加不同类型的Series(数据系列),即可轻松实现折线图、柱状图、饼图、散点图等多种图表…...

LaMa图像修复:基于傅里叶卷积的大掩码鲁棒修复方法

1. 项目概述:这不是又一个“修图工具”,而是一次对图像修复底层逻辑的重新定义LaMa——全称Large Mask Inpainting,直译是“大区域掩码图像修复”,但它的实际能力远超字面。我第一次在CVPR 2022论文里看到它时,第一反应…...

AI模型评估实战:从原理到实践,用Evaliphy简化评测全流程

1. 项目概述:当AI测试遇上“简化”难题最近和几个做AI应用开发的朋友聊天,大家不约而同地提到了同一个痛点:模型效果评估太折腾了。这让我想起自己去年折腾一个文本分类项目时的经历——为了评估模型在几个不同测试集上的表现,我写…...

【PHP】编写php扩展

【PHP】编写php扩展 第一步 下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16/ext目录。输入 ./ext/_skel –extnamemyext,myext就是扩展的名称,执行后生成myext目录。 ext/_skel是PHP官方提供的用于生成php扩展骨架代码的工具。 cd myex…...

跨越版本鸿沟:Matlab 2020b与VS2022混合编译环境搭建实战

1. 环境准备:当Matlab 2020b遇上VS2022 第一次尝试在Matlab 2020b里调用VS2022编译器时,命令行弹出的红色报错让我愣了半天。官方文档明确写着Matlab 2020b最高只支持VS2019,这就像让Windows XP运行最新版Photoshop——理论上不可能&#xff…...

PLC编程入门学习路径

PLC编程入门学习路径基础概念理解PLC(可编程逻辑控制器)是一种工业自动化控制设备。需要理解其工作原理、硬件组成(CPU、I/O模块、电源等)以及常见的品牌(如西门子、三菱、欧姆龙)。编程语言学习PLC常用编程…...

基于SpringBoot+Vue的网上商城系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

💡实话实说:有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 随着互联网技术的快速发展,电子商务已成为现代商业活动的重要组成部分。网上商城系统作为电子商务的核心载体,为用户提供了…...

如何在Blender中实现工程级精确建模:CAD_Sketcher完全指南 [特殊字符]

如何在Blender中实现工程级精确建模:CAD_Sketcher完全指南 🚀 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher 你是否曾经在Blender中尝试创建精确的机…...

别再只写客户端了!用C语言搞定聊天室全栈开发:客户端+服务端联调避坑指南

别再只写客户端了!用C语言搞定聊天室全栈开发:客户端服务端联调避坑指南 在C语言全栈开发中,客户端和服务端的联调往往是开发者最容易踩坑的环节。很多初学者能够独立完成客户端或服务端的代码编写,但当两者需要协同工作时&#x…...