java之mvc接收postman传递list

Postman测试EasyExcel文件上传接口:从协议原理到实战排坑 文件上传是Web开发中的基础功能,其核心协议multipart/form-data定义了如何在HTTP请求中封装二进制数据。理解这一协议原理,是解决前后端联调问题的关键。在技术实现上,Spring Boot通过MultipartResolver解析请求,将文件流转换为MultipartFile对象,为后续处理提供基础。结合EasyExcel这类高效解析库,可以实现对Excel等结构化文件的数据读取与业务处理,极大提升了数据导入的效率和可靠性。在实际的工程实践中,开发者常使用Postman进行接口测试,但常因 阅读详情

接口

 /// <summary>
        /// 测试传入list集合类型的参数
        /// </summary>
        /// <param name="ps"></param>
        /// <param name="n1"></param>
        /// <param name="n2"></param>
        /// <returns></returns>
        public string PostPeoples([FromBody]List<People> ps)
        {
            string str = "";
            foreach (var item in ps)
            {
                str += item.Name + ",";
            }
            return str.Trim(',');
        }

Postman 调用(错误版本)

 

Postman 调用(正确版本)

1.注意如果list不是内嵌对象则不需要名称,如果上面的错误示范ps

2.如果是内嵌对象这是需要的。

{"id":671202,"trainName":"test", "trainContent":"content","accessUser":[{"account":"123","name":"zhangsan"},{"account":"345","name":"lisi"}]}  

如下:accessUser

public class SafeTrainReq {
    private String trainName;
    private String trainContent;
    private List<SafeTrainUser> accessUser;

 

 

 

 

 

【JavaEE】Spring Web MVC 入门 本文介绍了Spring Web MVC的基本概念,涵盖MVC设计模式、Spring MVC作为Web框架的实现,以及核心注解@RequestMapping和@RestController的使用。通过实例演示如何建立请求映射、处理请求参数并返回响应,帮助读者掌握Spring MVC基础开发能力,并了解企业级项目中的命名规范与架构思想。 阅读详情

相关推荐

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5555

Postman传参后台接收问题(接收多个Javabean)

1.后台用javabean接收 2.用fastjson接收 3.map接收

weixin_61503139的博客 1138

Open FPV VTX与Betaflight的MSP协议配置详解:从硬件连接到OSD显示

本文详细解析了如何通过MSP协议将Open FPV VTX与Betaflight飞控进行深度集成,实现飞行数据在OSD上的稳定显示。内容涵盖从硬件连接、Betaflight端口MSP服务启用,到VTX侧配置与OSD元素布局调校的全流程,并提供了常见问题的排查思路,帮助FPV玩家构建可靠的数据叠加系统。

weixin_29201933的博客 452

Java接收参数,以及用PostMan如何调用的问题

1:Query.java 2:控制层Controller 注意这里请求参数如果没加注解@RequestBody,那PostMan调用 或者 像这里,我传了两个值,也可以传一个请求参数如果加注解@RequestBody,那PostMan调用 一般来说,在服务端像这种List类型参数或者参数太多的话,都建议使用Json接收参数,不建议使用form-data或者x-www-form-urlencoded.也就是说,服务端接收接收的参数是个类,那就尽量加@RequestBody,这样规范些!!!

qq_44322586的博客 2469

中国高精度年度平均气温栅格数据集(1901-2024)

本文基于中国月度平均气温栅格数据集,计算生成1901-2024年1km分辨率的年度平均气温数据集,并按中国省市行政区划进行裁剪。该数据集融合CRU全球数据和WorldClim高分辨率数据,经496个站点验证,具有高时空精度和长时间序列特点,覆盖全国(含港澳台)逾百年气温记录,为气候变化研究、生态水文分析及农业生产评估等提供重要数据支撑。数据格式为Tif,单位为0.1℃,可获取全国、各省及各市三个尺度的气温栅格数据。

PPdata_Academy的博客 1244

手把手教你学Simulink--单相逆变器模糊逻辑控制策略仿真

本文介绍了在Simulink中设计单相逆变器模糊逻辑控制策略的完整流程。主要包括:1)构建单相逆变器模型;2)使用FuzzyLogicToolbox设计模糊控制器,定义输入输出变量和模糊规则;3)将控制器集成到Simulink模型;4)添加干扰源和示波器;5)配置仿真参数并分析结果。该方法利用模糊控制处理非线性系统的优势,可实现输出电压的精确跟踪,具有良好的鲁棒性。文中提供了详细的步骤说明和示例代码,强调准确设计隶属函数和规则库对控制性能的关键作用。该仿真设计为电力电子控制系统的开发提供了有效支持。

MHD0815的博客 200

postman传入list

在postman存入集合 list 例如: 没有参数的 { "flavors": [], "categoryName": "String", "copies": 0, "id": 0, "name": "String", "categoryId": 0, "price": 0.0, "code": "String", "image": "String", "description": "String", "status": 0, "sort": 0, .

鱼皮小刘博客 7108

096、PCIE环回模式(Loopback):调试时自己和自己对话的利器

摘要: PCIE环回模式是调试利器,通过让芯片内部数据自环来定位问题层级。文章详解三种环回模式:物理层环回验证基础收发,数据链路层环回测试DLLP机制,事务层环回验证端到端协议。分享了实战中的典型问题(时钟异常、状态机卡死、计数器失真)和"从下往上"的调试流程,强调要区分调试与生产功能,建议早期验证环回模式。通过具体代码示例和调试案例,说明合理使用环回模式能显著提升排查效率,是PCIE调试必备技能。(149字)

z534437748的博客 105

Postman测试接口传入List类型的参数以及数组类型参数

前言 在开发过程中,后台难免会接收到各种各样的参数类型,比如对象,单个参数,List集合类型,数组类型,等等,如果你是后端开发者,在没有前端接口请求的情况下,该怎么测试呢? 一、接受List类型的复杂参数 1、列子一、只接受一个List类型: 普通的@RequestParam接受参数 @PostMapping("/updateProductStatus") public JSONObject updateProductStatus(@RequestParam(value = "ids",required

日常分享工作中的一些技术干货。 6万+

Python爬虫实战:携程旅游平台数据爬取(酒店+机票+景点),破解加密与反爬(附完整代码)

携程的反爬机制再复杂,核心逻辑都是“识别非真实用户的请求”,而爬虫的核心就是“让请求看起来像真实用户的行为”。本文的方案从登录态处理、参数加密破解、动态数据抓取,到反爬应对,都是围绕“模拟真实”展开:用Playwright模拟真实浏览器登录,用住宅代理模拟真实用户IP,用随机延迟模拟真实用户的操作频率。掌握了这个核心思路,无论平台的反爬如何升级,都能找到应对方法。当然,爬虫技术是一把双刃剑,合理使用才能发挥其价值。如果你的爬虫项目中遇到了携程的反爬问题,不妨按照本文的步骤试试,大概率能解决问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2606

基于C++和Qt开发IEC104规约主站调试软件(第二章)

本章节主要讲解iec104主站软件界面设计和从站的连接功能以及部分功能代码的展示。

半青年的博客 858

SpringMVC后台接收list类型的数据的实现方式

一、背景   最近在做一些东西的时候,遇到一个需要Springmvc后台接收list类型数据的需求,几经辗转才完美解决了这个问题,今天记下来方便以后使用,也分享给需要的小伙伴们~ 二、实现方式 实现方式一 前端页面 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C/..

weixin_42158899的博客 3898

优化算法 | 赏金猎人优化算法(Bounty Hunter Optimizer, BHO)及其在多无人机移动边缘计算与路径规划中的应用(附matlab源代码)

移动边缘计算(Mobile Edge Computing, MEC)通过将计算资源下沉至网络边缘,有效解决了物联网终端设备计算能力不足与能耗受限的问题。无人机(Unmanned Aerial Vehicle, UAV)因其高机动性、灵活部署和广域覆盖等优势,被广泛用作MEC的移动服务器平台。多无人机辅助MEC系统的核心优化问题在于:如何在满足任务处理时延约束和无人机能量限制的前提下,联合优化无人机的三维飞行轨迹、任务卸载决策与计算资源分配,以最小化系统总能耗或最大化任务完成效率。

尘世冰封的专栏 223

java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present

jsp页面调 java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present,

weixin_43735471的博客 2007

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

用PostMan测试传递的参数

转载:https://blog.youkuaiyun.com/xu990128638/article/details/88690402 第一种方式:使用@ModelAttribute 注解 + 对象接收  1. get 请求  入参为 projectIds=1,2,3 2. @RequestMapping("/analysis") 或者 @GetMappin...

公子&小白的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

springmvc接受map/list/object对象(控制层接收参数写法和postman传参写法)

哎最近离职到了一家新公司,由于之前公司用的框架是自己内部大佬写的,所以好久没有弄spring系列的东西,有些技术点忘记了。但是没办法还是要恰饭的啊,工作还是得完成的,遂又开始了新一轮的技术学习(与其说学习,还不如说重拾原本已经忘记的技术)。废话不多说了,直接上控制层代码: import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBod

曾昌的博客 2331

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

GET 请求接收 List<String>

java 参数前可加 @RequestParam @RequestBody @GetMapping("/get") public String get(List<String> list) { return "ok"; } 前端 http://localhost:8080/get?list=123&list=123123&list=3333 解决方法2: 1、将Controller的接口改为 post 请求方式,并将参数接受方式设为 @RequestBo.

voidL123的博客 1万+

【JavaEE】_Spring MVC项目使用数组与集合传参

不止Chrome,postman也支持urlencode操作,在postman上构造这种类型的请求也可以成功发送并成功收到响应;根据开头数字不同可分为4组:2xx:成功;4xx:客户端错误;5xx:服务端错误;构造该请求时,除了使用&连接的键值对作为querystring部分进行多参数传递的方法外,【JavaEE】_前端使用GET请求的queryString向后端传参-优快云博客。对于1.3中提到的在同一个请求中传递多个名称相同的参数的问题,在HTTP响应成功的情况下,业务的响应结果分为不同的状态;

m0_63299495的博客 1483

Java29:Spring MVC

Spring Web MVC 是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC” 来自其源模块名称(spring-webmvc)但它通常被称为“Spring Mvc”在控制层框架历经 Strust ,WebWork,Strust2等诸多产品的历代更迭之后,目前业界普遍选择了Spring MVC 作为JavaEE 项目表述层开发的首先方案。优势:》Spring 家族的原生产品,与IOC容器等基础设施无缝对接。

zzx_nihao的博客 1224

Spring MVC接收前端数组与集合参数:@RequestParam与@RequestBody实战解析

在Java Web开发中,HTTP请求参数绑定是前后端交互的核心基础。其原理基于HTTP协议与服务器端框架的参数解析机制,通过类型转换与数据映射实现客户端数据到服务器端对象的准确传递。这一技术的价值在于保障了数据在传输层与应用层之间的一致性与可靠性,是构建健壮API接口的基石。常见的应用场景包括查询过滤、表单提交及复杂业务数据的创建与更新。本文聚焦于Spring MVC中高频出现的数组与集合参数接收问题,通过对比@RequestParam与@RequestBody两大核心注解的绑定机制,结合JSON序列化等

weixin_34357887的博客 520

Spring MVC接收前端数组集合参数:原理、场景与避坑指南

在Web开发中,前后端数据交互是核心环节,其中参数绑定机制决定了数据如何从HTTP请求映射到后端代码。Spring MVC框架通过内置的数据绑定与类型转换系统,自动处理HTTP请求中的参数。其原理基于`ConversionService`,能够将查询字符串、表单数据或JSON请求体中的参数,智能转换为Java中的集合类型如`List`、`Set`或数组。这一技术价值在于极大提升了开发效率,保证了类型安全,并统一了参数处理逻辑。典型的应用场景包括接收批量操作的ID列表、多选过滤条件以及复杂嵌套的JSON数据。

weixin_34211761的博客 551

【Java EE】Spring Web MVC 请求与响应的全过程

Spring MVC是Java Web开发的核心框架,基于MVC设计模式实现前后端交互。它将应用分为Model(业务逻辑)、View(数据展示)和Controller(请求调度)。Spring Boot作为开发脚手架,通过集成Spring MVC(spring-web依赖)提供Web能力。核心流程包括:1) 建立连接:使用@RequestMapping绑定URL与方法;2) 获取参数:支持普通参数、对象、数组、集合及@RequestParam重命名;3) 返回响应。适用于前后端分离场景,后端主要

记录了从0学习Java技术栈的日常 806

Postman同时上传多个文件和数据

定义对象,对象重要包含数组,而不是写成List 1、对象 public class FileDataList(){ String names[]; String sizes[]; MultipartFile files[]; } 2、Controller public void sendData(FileDataList filedatas){ } 3、postman Body下的form-data传参数和文件,传多个参数和文件就往下面写每个key要一样,如: names 测试文件01 si

v慕言的博客 1965

postman请求:参数传入的不同方法

1.注解:@RequestBody 格式:application/json 1.1 实体 1.2List参数 (List<Long> ids) ==> [360,361,362] //中括号 (List<String> str) ==> ["aaa", "saa"] (List<User> user) ==&...

u013158317的博客 7073

Struts2 action的参数传递方式

2016年6月19日,今天学习Struts2 action的参数传递 主要有3种传输方式: 1、用action属性接收 2、用domain model或者dto(data transcation object) 3、实现modelDriven 第一种传输方式:直接在action里set参数变量 index页面: <%@ page language="java" conten

alexpdh的博客 1058

全网最强SpringMVC教程 | 万字长文爆肝SpringMVC(一)

本文介绍了SpringMVC框架的基本概念和入门案例实现。主要内容包括: SpringMVC概述 基于MVC设计模式的轻量级Web框架 主要处理请求接收、业务转发和响应数据转换 相比Servlet更简单灵活 入门案例实现步骤 创建Maven web项目 导入SpringMVC和Servlet依赖 创建SpringMVC配置类 编写Controller处理请求 配置DispatcherServlet替代web.xml 关键点说明 使用@Controller注解标记控制器类 @RequestMapping定义请

qq_45832461的博客 1145
上一篇: java问题之异常抛出错误误以为找不到
下一篇: java值byte类型长度超出
baicp3
博客等级 码龄16年 69粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值