Java项目-苍穹外卖-Day06-微信小程序开发

文章目录

  • 前言
  • 1.HttpClient
    • httpclient是什么
    • 入门案例
      • 发送GET请求
      • 发送POST请求
      • Httpclient工具类
  • 2.微信小程序
    • 介绍
    • 准备工作
      • 注册小程序和完善对应信息
      • 下载开发者工具
    • 入门案例

前言

本篇主要是主要是wx小程序开发入门和HttpClient的使用介绍
完成了苍穹外卖用户端的 微信登陆 和 导入商品浏览功能代码(没写跟之前day04的类似)

1.HttpClient

httpclient是什么

简而言之,该工具包可以使我们使用java编码的方式发送http请求,之前我们都是接收浏览器的http请求的,现在是发送
在这里插入图片描述
然后我们配置依赖项的话
我们使用的aliyun.oss已经通过依赖传递传过来了这个jar包
所以可以直接用
在这里插入图片描述

入门案例

发送GET请求

    @Testpublic void testGet() throws Exception{//创建httpClient对象CloseableHttpClient aDefault = HttpClients.createDefault();//创建请求对象HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");//发送请求CloseableHttpResponse response = aDefault.execute(httpGet);//获取服务端返回的状态码int statusCode = response.getStatusLine().getStatusCode();System.out.println("服务器返回的状态码为: "+statusCode);HttpEntity entity = response.getEntity();String body = EntityUtils.toString(entity);System.out.println("服务端返回的数据为: "+body);//关闭资源response.close();aDefault.close();}

测试结果
测试记得保证redis开启
在这里插入图片描述

发送POST请求

    /*** 测试通过httpclient发送POST方式的请求*/@Testpublic void testPost() throws Exception {//创建httpclient对象CloseableHttpClient client = HttpClients.createDefault();//创建请求对象HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");//这个请求需要请求体,里面是JSON形式的命名和用户名JSONObject jsonObject = new JSONObject();jsonObject.put("username","admin");jsonObject.put("password","123456");StringEntity stringEntity = new StringEntity(jsonObject.toString());//指定编码方式stringEntity.setContentEncoding("utf-8");//指定传输数据格式stringEntity.setContentType("application/json");httpPost.setEntity(stringEntity);//发送请求CloseableHttpResponse response = client.execute(httpPost);//解析返回结果int statusCode = response.getStatusLine().getStatusCode();System.out.println("响应码: "+statusCode);HttpEntity entity = response.getEntity();String s = EntityUtils.toString(entity);System.out.println("响应数据为: "+s);//关闭资源response.close();client.close();}

测试结果
在这里插入图片描述

Httpclient工具类

可以看到之前的操作还是比较的机械式的
所以我们创建一个工具类
基本上就是封装一下我们之前写的代码

/*** Http工具类*/
public class HttpClientUtil {static final  int TIMEOUT_MSEC = 5 * 1000;/*** 发送GET方式请求* @param url* @param paramMap* @return*/public static String doGet(String url,Map<String,String> paramMap){// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();String result = "";CloseableHttpResponse response = null;try{URIBuilder builder = new URIBuilder(url);if(paramMap != null){for (String key : paramMap.keySet()) {builder.addParameter(key,paramMap.get(key));}}URI uri = builder.build();//创建GET请求HttpGet httpGet = new HttpGet(uri);//发送请求response = httpClient.execute(httpGet);//判断响应状态if(response.getStatusLine().getStatusCode() == 200){result = EntityUtils.toString(response.getEntity(),"UTF-8");}}catch (Exception e){e.printStackTrace();}finally {try {response.close();httpClient.close();} catch (IOException e) {e.printStackTrace();}}return result;}/*** 发送POST方式请求* @param url* @param paramMap* @return* @throws IOException*/public static String doPost(String url, Map<String, String> paramMap) throws IOException {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (paramMap != null) {List<NameValuePair> paramList = new ArrayList();for (Map.Entry<String, String> param : paramMap.entrySet()) {paramList.add(new BasicNameValuePair(param.getKey(), param.getValue()));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);httpPost.setEntity(entity);}httpPost.setConfig(builderRequestConfig());// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "UTF-8");} catch (Exception e) {throw e;} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}/*** 发送POST方式请求* @param url* @param paramMap* @return* @throws IOException*/public static String doPost4Json(String url, Map<String, String> paramMap) throws IOException {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);if (paramMap != null) {//构造json格式数据JSONObject jsonObject = new JSONObject();for (Map.Entry<String, String> param : paramMap.entrySet()) {jsonObject.put(param.getKey(),param.getValue());}StringEntity entity = new StringEntity(jsonObject.toString(),"utf-8");//设置请求编码entity.setContentEncoding("utf-8");//设置数据类型entity.setContentType("application/json");httpPost.setEntity(entity);}httpPost.setConfig(builderRequestConfig());// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "UTF-8");} catch (Exception e) {throw e;} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}private static RequestConfig builderRequestConfig() {return RequestConfig.custom().setConnectTimeout(TIMEOUT_MSEC).setConnectionRequestTimeout(TIMEOUT_MSEC).setSocketTimeout(TIMEOUT_MSEC).build();}}

2.微信小程序

介绍

以个人形式注册不能开放支付功能的
在这里插入图片描述
在这里插入图片描述

准备工作

在这里插入图片描述

注册小程序和完善对应信息

注册微信小程序
注册选择个人
然后你把小程序信息和分类项目填好就OK了
在这里插入图片描述
然后点击开发管理的开发设置选项

在这里插入图片描述
获取对应的id和秘钥即可

下载开发者工具

在这里插入图片描述
下载完就是一个exe程序
直接一直点下一步,选个安装路径就行
登录进后的画面
在这里插入图片描述
新建项目
小程序AppID用自己的!
在这里插入图片描述
点击确定就会生成对应的模拟器和开发工具
主要就是三个组件
编辑器,调试器和模拟器
在这里插入图片描述
在详情里面的本地设置
把这个勾选上,如果不勾选,请求是发送不出去的

在这里插入图片描述

入门案例

小程序开发其实本质上还是前端开发
主要用到的语言就是js
编码风格类似vue
在这里插入图片描述
page对应小程序页面,一个页面下又包含四个文件
在这里插入图片描述
app.js
pages里面把所有的page包含即可
titletext对应关系图里也标识了
在这里插入图片描述
index.wxml对应关系
也可以动态获取index.js的值进行动态展示
在这里插入图片描述
在index.js 定义变量和方法
在index.wxml进变量操作和方法绑定等
在这里插入图片描述
接下来也有点逆天
感觉对后端学习用处不大
主要是微信的一些内部方法

注意一下微信登陆那个方法,会返回一个授权码
然后回用这个码调用微信的接口就能拿到用户的唯一标识OPENId
一个授权码只能使用一次,每次登录授权码不同

在这里插入图片描述

发送请求-wx.request
在这里插入图片描述
发布小程序
上传
在这里插入图片描述
然后再版本管理看
提交审核
审核完成才可以发布
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/83880.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一个用C#实现的windows计时执行任务的服务

记录一个用C#实现的windows计时执行任务的服务 这个服务实现的功能是每天下午六点统计一次指定路径的文件夹大小 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using Syst…

登录校验-JWT令牌-登陆后下发令牌

目录 思路 接口文档 令牌生成和下发 步骤 具体代码如下 工具类 控制类 测试 前后端联调 思路 令牌生成&#xff1a;登陆成功后&#xff0c;生成JWT令牌&#xff0c;并返回给前端令牌校验&#xff1a;在请求到达服务端后&#xff0c;对令牌进行统一拦截、校验 接口文档…

考研C语言进阶题库——更新41-50题

目录 41.编写程序要求输出整数a和b若a和b的平方和大于100&#xff0c;则输出a和b的平方和&#xff0c;否则输出a和b的和 42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a;第一项是1/1&#xff0c;第二项是是…

微信开放注册微信小号功能,工作人群福音!

微信&#xff0c;这个坐拥数亿用户的社交巨头&#xff0c;最近终于开放了注册微信小号的功能。这个功能对于需要多个微信账号进行工作的人来说&#xff0c;无疑是一场及时雨&#xff0c;极大地提高了工作便利性。 在之前的版本中&#xff0c;每个微信账号都绑定了一个手机号&am…

改进YOLO系列:5.添加CBAM注意力机制

添加CBAM注意力机制 1. CBAM注意力机制论文2. CBAM注意力机制原理3. CBAM注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. CBAM注意力机制论文 论文题目:CBAM: Convolutional Block Attention Module 论文链接:CBAM: Convolutional Block Attenti…

哪个蓝牙耳机打电话比较好,打电话降噪蓝牙耳机推荐

近年来&#xff0c;骨传导耳机的市场表现出了显著的增长&#xff0c;其市场竞争也变得异常激烈&#xff0c;与传统无线耳机相比&#xff0c;“骨传导耳机”的知名度还达不到举世皆知的地步&#xff0c;但对于运动群体以及部分有听力损伤的群体来说&#xff0c;骨传导耳机还是有…

❤ 给自己的mac系统上安装java环境

❤ 给自己的mac系统上安装java环境 &#x1f353; 作为前端工程师如何给自己的mac系统上安装java环境 &#x1f34e; 最近因为自己的一些项目需求&#xff0c;mac电脑上需要安装一些后台的java环境&#xff0c;用来跑后台的java程序&#xff0c;于是从一个前端工程师的角度安…

探秘工业设计的魅力:引领时尚潮流,打造个性空间

工业风格源自于上世纪初的工人阶级世界&#xff0c;几十年来一直充满诱惑力。它们由金属集合物&#xff0c;焊接、铆钉这些暴露在外的结构组建&#xff0c;融进了更多装饰性的曲线&#xff0c;再与素雅的色彩搭配形成&#xff1a;让我们来看看这种历史悠久的&#xff0c;在室内…

HTTPS协议加密原理

目录 一、什么是HTTPS 二、什么是加密/解密 三、为什么要加密 四、常见的加密方式 1.对称加密 2. 非对称加密 五、HTTPS加密方式探讨 1.只使用对称加密 2.只使用非对称加密 3.非对称加密对称加密 4.非对称加密对称加密CA认证 六、总结 一、什么是HTTPS HTTP 协议&a…

【Hadoop】HDFS读写流程和客户端命令使用

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…

【JVM 内存结构丨栈】

栈 -- 虚拟机栈 简介定义压栈出栈局部变量表操作数栈方法调用特点作用 本地方法栈&#xff08;C栈&#xff09;定义栈帧变化作用对比 主页传送门&#xff1a;&#x1f4c0; 传送 简介 栈是用于执行线程的内存区域&#xff0c;它包括局部变量和操作数栈。 Java 虚拟机栈会为每…