/ 获取SSL 证书 /

登录 - 腾讯云

并注册域名获取 SSL 证书

 下载jks格式的证书

/  SpringBoot 工程里面配置JSK证书  / 

证书配置

将下载好的证书压缩包(zip)解压得到证书 密码 jks 文件

将jks证书复制到SpringBoot工程resources目录下

 https协议访问接口的配置

打开 application.properties 文件 , 添加可进行https协议访问接口的配置

#http端口号
server.http.port=8080
#https端口号
server.port=8081
#证书的路径.
server.ssl.key-store=classpath:smallhello123456.site.jks
#证书密码,请修改为您自己证书的密码.
server.ssl.key-store-password=xs1orvy35bp07
server.ssl.key-password=xs1orvy35bp07

访问接口

运行SpringBoot工程 , 然后测试接口

 访问注册提示 : Bad Request This combination of host and port requires TLS , 大概意思就是接口访问需要证书较验

 访问接口时, 需要在访问地址前拼接https 

/  MySQL文件部署到腾讯云服务器  /

购买腾讯云服务器

        我这里购买的Windows云服务器 , 可以直接通过网络登录云服务器 .如果是电脑是Windows系统的 可以直接使用电脑自带的远程桌面登录 ; 如果电脑是 Mac 系统的也可以通过Microsoft Remote Desktop Beta 进行远程登录云服务器 .

Windows电脑如何远程登录云服务器

Mac 连接登录远程Windows云服务器

 导出 MySql 文件

配置访问云服务器的参数

这里使用的的Mac系统, 所以是用了Microsoft Remote Desktop Beta 进行远程登录云服务器 .

登录Windows云服务器查看公网IP或者 通过自己的腾讯云账号查看购买的云服务器IP地址 .

设置 User Account (就是云服务器登录的账号和密码) .

 Windows云服务器共享Mac本地磁盘上的文件

 云服务器安装MySQL环境

MySQL下载

安装 MySQL 数据库

云服务器配置环境变量

重新启动云服务器 查看MySQL是否安装成功

mysql -V

 MySQL文件部署到云服务器

通过云服务器共享本地Mac电脑的磁盘, 将 chatdb.sql 复制到云服务器 C:\Project\Java 目录下 ,执行如下命令进行数据库部署到云服务器 .

mysql -u root -p
#输入密码
create database chatdb character set utf8;
#进入chatdb 数据库
use chatdb
#导入sql文件
source C:\Project\Java\chatdb.sql
#查看是否导入成功
show tables;

 

/SpringBoot工程部署到云服务器/

通过Maven 编译jar库文件

执行1、2、3步骤之后, 在 SpringBoot工程target文件夹下面生成chat-0.0.1-SNAPSHOT.jar文件 

将jar包共享到云服务器

将jar复制到云服务器的磁盘上

 云服务器安装JDK 

查看jdk版本

java -version

执行java -jar 命令 

java -jar c:\Project\Java\chat-0.0.1-SNAPSHOT.jar

云服务器Tomcat配置JKS证书

Tomcat 服务器 SSL 证书安装部署

通过云服务器访问接口

/  Dio 网络请求  / 

Flutter 项目实战 Dio网络请求 四

创建控制器、视图层、Model层CallBack

abstract class CRegisterModel extends IModel {
  ///
  userRegister(Map<String, dynamic> p, SuccessCallback s, FailureCallback f);
}

abstract class CRegisterPresenter extends IPresenter {
  ///
  userRegister(Map<String, dynamic> p);
}

abstract class CRegisterView extends IView {

  showData(d);
}

创建Model层 

class MRegister extends AbstractModel implements CRegisterModel {
  @override
  void dispose() {
    // TODO: implement dispose
    HttpManager().cancel(tag!);
  }

  @override
  userRegister(Map<String, dynamic> p, s, f) async{
    return HttpManager().post(
        url: '/user/register',
        tag: tag!,
        successCallback: (data) {
          s(data);
        },
        errorCallback: (data) {
          f(data);
        },
        params: p);
  }
}

创建Presenter层

class PRegister extends AbstractPresenter<CRegisterView, CRegisterModel>
    implements CRegisterPresenter {
  @override
  IModel createModel() {
    return MRegister();
  }

  @override
  userRegister(Map<String, dynamic> p) async {
    view?.startLoading();
    return model?.userRegister(p, (data) {
      view?.showLoadSuccess();
      view?.showData(data);
      model?.dispose();
    }, (error) {
      view?.showLoadFailure(error.code!, error.message!);
    });
  }
}

HttpManager 初始化

httpManager管理了网络请求的类(get、post、文件上传、取消网络请求)

void main() {
  HttpManager().init(baseUrl:"https://1.15.0.115:8081/admin");
  runApp(const MyApp());
}

网络请求异常CERTIFICATE_VERIFY_FAILED

DioError [DioErrorType.other]: 
HandshakeException: Handshake error in client 
(OS Error: CERTIFICATE_VERIFY_FAILED: Hostname mismatch

解决方案 : 忽略证书

 案例下载  

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐