Hessian 使用小记

想来想去还是把hessian的应用放到SOA栏目中来吧

hessian实现了远程调用,不需要学习WEB service的一些规范就可以直接上手, 它一个轻量级的Java远程访问的解决方案。Hessian很像WebService,只不过它不使用SOAP协议,而是使用它自己的binary协议

使用它只需要3个关键的类

1、stub(存根) 也就是服务器端和客户端的公共接口

2、服务器端对该接口的实现类serviceimpl

3、服务器端的sevlet ,hessian帮我们实习了个HessianServlet,当然我们可以直接让我们的serviceimpl继承HessianServlet

下面举例,例子在网络上,官方文档上都有的

stub

/**
* @author 付志超
* @time Sep 26, 2008 2:35:54 PM
*/
/**
 * 
 */
package com.alimama.function;

import com.alimama.bean.Student;

public interface SayHello {
	public String sayHello(String name);
	public Student getStudent() ;

}

 

serviceimpl

/**
* @author 付志超
* @time Sep 26, 2008 2:36:58 PM
*/
package com.alimama.function.impl;

import com.alimama.bean.Student;
import com.alimama.function.SayHello;
import com.caucho.hessian.server.HessianServlet;

public class SayHelloImpl extends HessianServlet implements SayHello {

	public String sayHello(String name) {
		return "hello "+name;
	}

	@Override
	public Student getStudent() {
	        Student  s=new Student();
	        s.setName("付志超");
	        s.setSchool("武汉理工大学");
	        return s;       
	}

}

 

本例中需要传输的序列化的bean

/**
* @author 付志超
* @time Sep 26, 2008 3:42:47 PM
*/
package com.alimama.bean;

import java.io.Serializable;

public class Student implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9006571629757493042L;
	private String name;
	private String school;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
	public String toString() {
		return name+"  "+school;
	}
	
	
}

 

最后是web.xml的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>
			com.alimama.function.impl.SayHelloImpl
		</servlet-class>
	</servlet>
  <servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>com.alimama.function.impl.Test</servlet-class>
  </servlet>

	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
  <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>
</web-app>

 

当然如果我们的 serviceimpl没有实现 HessianServlet

 那么web.xml应该修改成为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>
			com.caucho.hessian.server.HessianServlet
		</servlet-class>
		<init-param>
			<param-name>home-class</param-name>
			<param-value>com.alimama.function.impl.SayHelloImpl</param-value>
		</init-param>
		<init-param>
			<param-name>home-api</param-name>
			<param-value>com.alimama.function.SayHello</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

 

 记住 Student一定要实习可序列化接口

最后是我们的客户端的调用

/**
* @author 付志超
* @time Sep 26, 2008 2:57:27 PM
*/
package com.alimama.test;

import java.net.MalformedURLException;

import com.alimama.function.SayHello;
import com.caucho.hessian.client.HessianProxyFactory;

public class HessianClientTest {
	public static void main(String[] args) {
		String url="http://127.0.0.1:8080/testHessian/hello";
		HessianProxyFactory factory=new HessianProxyFactory();
		try {
			SayHello say=(SayHello) factory.create(SayHello.class, url);
			System.out.println(say.sayHello("abc"));
			System.out.println(say.getStudent());
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

  启动服务器,然后执行上面的客户端,就会看到输出

 hello abc
  付志超  武汉理工大学

 

还有点要注意 如果用最新的版本的 hessian-3.1.6.jar  hessian-3.2.0.jar  都出现问题 无法获得 出现IO异常

但是使用一个 hessian-3.0.20.jar 的老包 是没问题的

 

=====

OK 以后在进一部使用hessian了 

【AI方案集】个人记忆库型AI智能体终身伴侣方案.docx 这套AI技术方案不走“先堆概念再硬套场景”的老路,而是以业务痛点为锚点,把机器视觉识别、预测性分析、大模型知识赋能等能力拆解成轻量化可落地的功能模块,直接嵌入生产运营的关键环节,既能快速落地见效,又能通过持续的数据迭代逐步放大价值,帮企业在不盲目新增硬件投入的前提下,稳步完成智能化升级,实实在在把AI变成能降本、提效、控风险的生产工具。 立即下载

相关推荐

【能源系统优化】基于MATLAB的光储充一体化多目标调度:光伏自用率与充电成本权衡及储能联合调控 MATLAB 光储充一体化运行优化|光伏自用率与充电成本权衡

内容概要:本文围绕MATLAB实现的光储充一体化系统运行优化展开,旨在通过建立统一的能量调度模型,量化光伏自用率与充电成本之间的权衡关系,提升设备利用效率与运行安全性,并形成可复现的工程分析能力。项目采用多目标混合整数线性规划方法,综合考虑分时电价、储能损耗、光伏消纳与车辆充电需求,在满足功率平衡、储能状态递推、充放电互斥等约束条件下,实现经济性与环保性的协同优化。通过归一化加权目标函数,支持灵活调整运营策略偏好,并利用MATLAB R2025b完成从数据生成、建模求解到结果可视化的完整流程。配套GUI界面支持参数配置、模型训练、结果预测与运行监控,增强了系统的实用性与交互性。 适合人群:具备一定MATLAB编程基础,从事新能源系统规划、电动汽车充电站运营、微电网控制或综合能源管理的技术人员与研究人员,尤其适合工作年限1-3年、希望深入掌握能源系统优化建模与工程实现的研发人员。 使用场景及目标:①优化城市公共充电站、工业园区、高速服务区等场景的光储充协同运行,降低运营成本并提高光伏利用率;②支持日前调度与滚动优化,实现从静态分析到动态调控的升级;③为储能配置、容量规划、需求响应申报及投资回报评估提供量化决策工具;④通过GUI界面实现数据驱动的模型训练与预测,辅助制定最优充放电策略。 阅读建议:此资源以MATLAB为开发平台,强调从理论建模到工程落地的全过程实践。建议读者结合代码示例与GUI操作,理解数据预处理、多目标优化、混合整数求解与结果评价的关键步骤,并通过修改权重参数、运行场景与设备配置进行灵敏度分析,从而全面掌握光储充系统优化的核心逻辑与应用潜力。

WebService第二天

WebService第二天   课程安排:(CXF+HESSIAN) 框架CXF概述(是什么,SOA概述,下载安装) CXF快速入门(服务端、客户端开发,日志拦截器,SOAP版本相互调用的) CXF与spring的整合(一个完整案例:服务端+客户端) Hessian概述(rmi、支持的语言。。。。下载。。。) Hessian与servlet整合(服...

zhangyr123的博客 531

一码盾・EXE 软件一机一码加密授权系统|机器绑定+离线授权码,防复制防破解,支持试用期 次数 有效期,批量发卡,软件加密软件

一码盾(DFG EXE 加密盾 旗舰版)是一套给任意 EXE 加壳加密、按 “一机一码” 发放授权的工具,面向个人开发者、软件作者和小型工作室。 加密时把主程序连同 DLL、bin 目录、配置文件一起打包,用 AES-256-CBC 加密后追加到壳程序末尾,成品里查不到明文代码;文件尾部带 SHA256 校验,壳模板也会自校验,改一个字节就拒绝启动,同时检测调试器,防止用 patch 跳过授权。原程序只在授权通过后才释放到临时目录运行,退出即删。 授权采用一机一码机制:客户双击成品后,会先看到启动面板,上面显示由 CPU、主板、BIOS、系统盘、显卡算出的 16 位机器码;客户复制后发给你,你用注册机粘贴出码,再由他填入激活。支持永久、按天数、按次数三种授权,试用次数用完就必须激活,删掉试用文件也刷不出新次数,把系统时间往前改也没有用。 每个产品都会随机生成一把独立密钥,界面上只显示 8 位指纹。A 产品的注册机出的码,在 B 产品上验不过;单个注册机的密钥被逆向出来,也不会影响其它产品;注册机还可以加口令,防止它外泄后被人乱出码。密钥库用 DPAPI 加密,注册机文件丢了,点 “重新导出” 就能补回。 面板可以按你的品牌来定:公告、微信、QQ、邮箱、跳转链接、6 个预设主题色加任意取色,有完整版和精简版两种样式,还能设成已激活就直接进程序、不弹面板。全程离线运行,不需要服务器,也不用客户联网。 工具是单文件,Win10、11 自带 .NET Framework 4.7.2 就能运行,另外支持用命令行或 spec.json 批量加密,用注册机命令行批量出码,还有 42 项端到端自检,并附完整 C# 源码和一键编译脚本,方便二次开发。

HessianProxyFactory调SOA接口

代码: public static void main(String[] args) { //外部提供的接口URL String url = "http://127.0.1:9980/tracksoa/remote/track"; //hessian代理工厂 HessianProxyFactory factory = new HessianProxyFactory(); fa...

qq_39276383的博客 977

ORCA灵巧手工程文件

包括软件包、用户手册、3D模型、上位机等资料

隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】

内容概要:本文系统阐述了隔离型全桥LLC谐振变换器的建模与参数设计方法,聚焦于2.5kW双向全桥LLC变换器的工程实现,涵盖变频与移相混合控制策略的原理与应用。资料包包含完整的Simulink闭环仿真模型、Mathcad计算书及详细的设计报告,深入解析了软开关技术、谐振参数优化、双闭环PI控制等核心技术,并结合控制理论展示了高频高效电源转换系统的设计流程与仿真调试方法。; 适合人群:具备电力电子与电力传动基础知识,从事开关电源、新能源变换器研发的工程师及高校研究生。; 使用场景及目标:①掌握全桥LLC谐振变换器的工作原理与数学建模方法;②学习基于Simulink的闭环控制系统设计与动态响应分析;③实现变频与移相混合控制策略下的谐振参数优化与系统稳定性调试;④应用于科研项目、毕业设计或工业产品开发中的高性能电源系统设计。; 阅读建议:此资源以仿真与计算为核心,建议读者结合提供的Simulink模型与Mathcad计算书同步操作,深入理解控制逻辑与参数设计流程,并通过调整谐振腔参数、观察闭环响应来强化实践能力。

Hession与Webservice的区别

Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。 采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。 Hessian的初衷就是支持动态类型,格式紧凑,跨语言。Hessian是使用自己的序列化机制实现的编组和反...

weixin_30527551的博客 222

蚊虫幼虫群及滋生地识别病媒生物检测数据集VOC+YOLO格式2868张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

Hessian、webservice、RESTFUL各自特点

Hessian. 一、简介        Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。   1、是基于什么协议实现的?            基于Binary-RPC协议实现。   2、怎么发起请求?            需通过Hessian本身提供的API来发起请求。   3、怎么将请求转化为符合协议的格式的?       

weigao_easy的博客 6370

CR660x-4.4.198.9-100刷机固件

根据bs://gb.cmMelRla/deva-4.4编译所得,适用于CR660X,建议刷第3方不死后进行升级。不死教程自行寻找。

【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)​

内容概要:本文围绕基于变频控制的多相交错LLC谐振变换器闭环仿真模型展开研究,系统阐述了多相交错并联技术在降低输出电流纹波与提升功率密度方面的优势,深入分析了交错角对纹波对消的影响及均流问题的成因。针对LLC谐振变换器在变频控制下的强非线性特性,研究采用扩展描述函数(EDF)进行小信号建模,克服了传统状态空间平均法在非线性系统中建模精度不足的缺陷,并在此基础上设计了输出电压外环PID控制器。通过Simulink仿真平台,对系统的稳态性能、启动过程、负载阶跃响应及频率调节的平滑性进行了全面验证,确保系统在动态工况下仍能维持软开关运行边界,提升了变换器的整体效率与稳定性。该研究为高频、高效率、低纹波电源系统的设计与优化提供了坚实的理论依据与实践指导。; 适合人群:具备电力电子、自动控制理论基础,从事开关电源、新能源变换器、高频电源系统或电力电子系统仿真的科研人员及工程师,特别适合电气工程、自动化等相关专业的研究生及工作1-3年的研发人员。; 使用场景及目标:①掌握多相交错LLC谐振变换器的工作原理及其在纹波抑制与功率扩容中的关键技术;②学习针对强非线性系统的EDF小信号建模方法,理解其在闭环控制器设计中的应用价值;③通过仿真模型复现与参数调试,提升对LLC变换器动态响应、稳定性分析与PID参数整定的实践能力; 阅读建议:建议结合文中提供的仿真模型与参数设计报告,逐步完成从建模、控制器设计到仿真验证的全流程操作,重点关注EDF建模的推导过程与闭环系统在不同工况下的动态响应表现,以深入理解高频谐振变换器的控制机理与工程实现要点。

Hessian 的字段序列化小记

  Hessian 的字段序列化小记   一背景: 今天线上碰到一个问题,在通过hessian的反序列化的时候失败了。 简单查看了下原因,是因为服务端和客户端依赖的bean包版本不一致导致的。   二 具体分析: Client --- &gt; commons-entity  Sever  ---  &gt; commons-entity    做了依赖倒置处理,服务...

知行天下 700

INCA_ProF脚本教程

一、首先INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛;与此同时ProF编程脚本是INCA软件提供各种实用功能之一,使用者可根据需求编写ProF脚本语言对ECU闪存编程等各种自定义操作。 二、然而ProF脚本语言在ETAS的官网或其他网络上并没有专门的使用教程,通常只有ETAS技术支持人员提供的ProF Documentation文档或少量可参考的Demo案例,然而ProF Documentation文档仅涉及ProF语言的函数的操作说明,没有从全局的框架上介绍Pro

weixin_29389627的博客 1万+

数学小记——基于梯度的优化方法

基于梯度的优化方法0.概述1.什么是优化,以及优化的目标2.为什么用梯度进行优化 0.概述 在吴恩达网课第一课第二周的内容中,学习了经典的梯度下降法。总感觉有些云里雾里,最近看了“花书”,里面也提到了一些相关内容,于是在这里进行整理,希望能稍微加深一点理解。 1.什么是优化,以及优化的目标 优化,就是改变自变量的值(这个自变量一般是x),让目标函数f的取值达到最大/最小。 当优化的目的是把目标函数最小化时,也可以称为代价函数/损失函数/误差函数。名字有好几个,但意义是一样的。 最优解记为x∗x^*x∗,例如

m0_51473192的博客 723

通达信-申万宏源金融终端本地数据转sqlite3,2、解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

为量化做准备,通达信-申万宏源金融终端本地数据转sqlite3,解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

wuyaqi的博客 511

【GEE实战指南】Python本地API配置避坑与一站式环境搭建

本文详细介绍了Google Earth Engine(GEE)Python本地API的配置避坑指南与一站式环境搭建流程。通过conda创建隔离环境、账户认证关键步骤、初始化代码的正确写法以及实战测试案例,帮助开发者快速掌握GEE Python API的配置技巧,避免常见错误,提升地理空间数据分析效率。

weixin_42624889的博客 187

dubbo学习小记

前言 周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境。 熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是通过Dubbo来治理的。其实之前我就对SOA、RPC等分布式服务的概念有所了解,Dubbo也多多少少知道一些,不过能亲身使用那是再好不过的了。 此文就对我的Dubbo学习做一个小的总结,基本我总

zhangyuan19880606的专栏 581

五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(一)引言和界面设计

引言 alphaGo击败围棋冠军李世石的新闻让我对棋类博弈产生了浓厚的兴趣,无奈本人不会围棋,但算是一个五子棋业余爱好者,于是乎希望通过实现一个五子棋ai来了解相关算法和知识。 五子棋在英文中又称Gobang,five-in-row,还有两个称呼:gomoku和renju(连珠)。我来简要介绍一下区别。由于五子棋已经被机器严格证明了是一种**“不公平”的游戏,先手黑子是绝对占优的,并且先手有必胜*...

livingsu的博客 1万+

工作小记——一账通平台设计分析及结果

公司业务各方面展开,要新上多个平台。需要不同域名的多个平台可以共享登陆状态。准确得说,就是需要一账通平台 现状:海银会(非标固收)与海银财富(公募基金)两个数据库、海银会平台一套系统 1.单点登录实现方案。 有两种技术方案: 1)A网站和B网站,登陆都跳C网站,C网站登陆后带着token返回A、B网站的相关页面。A、B网站将token存放到cookie中去并建立相关session。 2)...

weixin_30847865的博客 350

linux系统中实现智能家居的基本方法

使用QT开发智能家居中的一个物联应用,通过云服务器远程控制设备与设备进行通信。在生活中,可以使用WIFI智能插座控制电器开关,比如远程开启热水器,远程打开空调,窗帘等等。包括:WIFI联网,注册到云服务器上,编写QT UI通过网络来与云服务器通信,然后再下发指令到这个连网的设备。硬件说明:需要有一个串口转WIFI模块,另外需要加上一个USB-TTL模块,外加一根T口USB连接线,可接入PC电脑调试。

嵌入式技术开发 2608

SystemVerilog从入门到实战

SystemVerilog复合数据类型概述 SystemVerilog增强了Verilog的数据建模能力,提供多种复合数据类型: 数组类型:包括定宽数组(固定大小)、动态数组(运行时分配)和多维数组,支持高效索引访问。 队列:结合数组和链表特性,支持两端快速插入/删除操作,提供push/pop等方法。 关联数组:键值对存储结构,支持稀疏数据存储和快速查找,提供exists/delete等方法。 结构体:组合不同类型数据成员,支持打包(packed)形式以优化存储空间。 枚举类型:为数值赋予语义名称,支持状态

2301_79143213的博客 1227

Transient的用法

Java transient关键字使用小记 1. transient的作用及使用方法       我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。       然而在实际开发过程中,我们常常会遇到这

一直在路上 2135

优秀的 Verilog/FPGA开源项目介绍(二十七)- 小型CPU

介绍在FPGA上实现一个CPU是一个令人兴奋的事情,但是太复杂的CPU实现起来太难,而且不适合去了解计算机的架构,所以今天介绍一些小型的CPU,比如8051、MIPS、MSP430等~关于RISC-V的项目,请查看《优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V》ZipCPUhttp://zipcpu.com/about/zipcpu.html项目介绍Z...

OpenFPGA的博客 2576

论SOA架构的几种主要开发方式

面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。Soa的开发方法一般主要有开源的dubbo、dubbox、mule、wso2、cxf,以及付费的oracle soa、ibm soa等。 SOA是一种粗粒度、松耦合服务...

iteye_6274的博客 1535

vue3 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue3,nuxt3,高德地图,热力图,绘制热力图层,人流量,vue3使用高德地图实现某个区域热力图,vue3高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue3中使用高德地图渲染热力图组件,高德地图使用热力图详细教程,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅

✅ 精选推荐文章 5205

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: java 获得某年的某月有多少天
下一篇: Velocity中如何判断null
esteem
博客等级 码龄22年 3粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值