第三单元 okhttp的使用

Crossformer实战:从零开始搭建多变量时间序列预测模型(附ETTh1数据集调参指南) 本文提供了从零开始搭建Crossformer多变量时间序列预测模型的实战指南,并附有详细的ETTh1数据集调参攻略。文章深入解析了Crossformer的核心设计,重点探讨了seg_len和win_size等关键参数对模型性能的影响,并分享了环境配置、训练调试及常见问题的解决方案,帮助开发者高效应用这一前沿深度学习模型。 阅读详情

一. okhttp协议介绍

okhttp是一个第三方类库,用于android中请求网络。

二.okhttp完成get请求

 public void get(String url){
        OkHttpClient.Builder builder=new OkHttpClient.Builder();
        builder.readTimeout(30, TimeUnit.SECONDS);//读取超时
        builder.connectTimeout(20,TimeUnit.SECONDS);//连接超时
        OkHttpClient client=builder.build();//获得一个客户端对象
        //请求对象
        Request request=new Request.Builder().get().url(url).build();
        Call call=client.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                //失败
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                //成功
                String json = response.body().toString();
//                Toast.makeText(MainActivity.this,"真刺激",Toast.LENGTH_SHORT).show();
                Log.i("TAG", "onResponse: 你好我是大傻子");
            }
        });
    }

三.okhttp完成post请求

 public void post(HashMap<String,String> body,String url){//map.keyset():所有键的集合 values();所有值的集合
        OkHttpClient client=new OkHttpClient.Builder().build();
        //表单体(放上传的内容)
      FormBody formBody=new FormBody.Builder().add("name","lgt").add("pas","123").build();
      //上传文件
        MultipartBody.Builder mBuilder=new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("file","a1705.mp4",RequestBody.create(MediaType.parse("media/mp4"),new File("/mnt/sdcard/a1705.mp4")));



      Request request=new Request.Builder().post(formBody).url(url).build();
      Call call=client.newCall(request);
      call.enqueue(new Callback() {
          @Override
          public void onFailure(Call call, IOException e) {
              //上传失败
          }

          @Override
          public void onResponse(Call call, Response response) throws IOException {
                //上传成功
              String ok = response.body().toString();
              Log.i("TAG", "onResponse: 结果是"+ok);
          }
      });
    }

技能效果

在这里插入图片描述
点击GER
在这里插入图片描述
在这里插入图片描述
点击POST
在这里插入图片描述

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责 本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。 阅读详情

相关推荐

华为AR6140E/S5735设备密码策略配置全攻略:从复杂度到锁定机制

本文详细介绍了华为AR6140E/S5735设备的密码策略配置方法,涵盖密码复杂度、时效性和防护性三大核心维度。通过具体的CLI命令示例,指导管理员如何设置密码长度、字符组合、有效期及登录失败锁定等安全机制,为企业网络提供全面的用户名密码防护策略。

weixin_30836759的博客 531

OkHttp之OkHttpClient.Builder

okhttp3.OkHttpClient.Builderpublic static final class OkHttpClient.BuilderOkHttpClient.Builder是用来帮助创建OkHttpClient的;通过它我们可以方便的对OkHttpClient进行设置;下面是OkHttpClient.Builder设置OkHttpClient的常用方法:设置连接的连接超时的时间,默...

cdy的博客 1万+

Podman修改镜像源教程(附最新docker镜像源)

Podman修改镜像源教程(附最新docker镜像源)

道长的博客 4141

okhttp基本使用

基本使用分为四步 //获取一个客户端 OkHttpClient client = new OkHttpClient.Builder() ... .build(); 构建Request //构建一个Request Request request = new Request.Builder() .url(url) .build(); 获取Call对象 //获取Call对象 Call call=client.newCall(reques

xianrenli38的博客 517

IoT 平台架构全景图:从设备到 AI 的完整技术体系深度解析

随着物联网设备规模进入百万级时代,IoT 平台架构已经从简单的设备接入系统演变为完整的数据平台。本文从系统架构师视角,深度解析 IoT 平台的完整技术体系,包括设备接入、MQTT 通信、消息流平台、数据平台与 AI 决策系统,并结合主流云平台实践,构建从设备到 AI 的完整 AIoT 架构认知。

moton2017的博客 856

碳酸钙岩石酸蚀酸溶COMSOL建模:非均质对酸蚀通道的影响

多孔介质中的流动与化学反应耦合是石油工程和地下资源开发中的核心问题,酸液与岩石矿物的溶蚀过程直接关系到酸化增产效果。在碳酸盐岩储层中,盐酸与方解石的反应速率极快,酸液会优先沿高渗透区域推进,形成指状酸蚀通道,即wormhole。传统均质模型难以描述这种局部溶蚀行为,而数值模拟工具COMSOL通过耦合达西定律、稀物质传递与孔隙度演化方程,能够定量刻画酸蚀路径与渗透率的变化规律。工程实践中,模拟结果可用于预测酸液突破体积、优化注入排量,并为基质酸化方案设计提供依据。本文围绕碳酸钙岩石酸蚀酸溶COMSOL模型,探

weixin_29009401的博客 329

【OkHttp】OkHttp 源码分析 ( OkHttpClient.Builder 构造器源码分析 )

OkHttp 系列文章目录、 一、OkHttpClient.Builder 各个字段作用、 二、OkHttpClient.Builder 涉及到的相关源码、 三、博客资源、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2430

vCenter Server出现no healthy upstream的解决方法

可以通过"VMware vCenter Server Management(服务)"来排查问题,在网页里面找到“服务”模块,会发现有很多服务没有启动起来,而且手动启动也无法启动。7.0 地址后,页面出现“no healthy upstream”,无法正常登录vCenter,重启后依旧如此,该故障的前提是没有对vCenter做过任何配置,如下图所示。于是用命令查询是否有证书过期,发现真有多个服务依赖的证书在当天早上过期。使用如下命令尝试打开服务发现不分服务可以打开,不分服务无法打开。

1万+

OkHttp中的设计模式之一:Builder模式

OkHttp中的设计模式之一:Builder模式1. 什么是Builder模式2. OkHttp中的实例2.1 OkHttpClient的构建方式2.1 OkHttpClient中的Builder2.1.1 通过Builder构建一个OkHttpClient2.1.2 默认的Builder2.1.3 反构建Builder3. Builder插件 1. 什么是Builder模式 关于什么是builder模式,具体可以参考一下这篇文章。 Builder模式分为:经典builder模式和变种builder模式。而

ljy545733599的博客 1910

前端build工程的时候 出现 `build.rollupOptions.external 的解决方法

看到这个Bug,理性分析: 遇到 Rollup failed to resolve import “@vue/devtools-api” 错误可能是由于 Pinia 使用了 @vue/devtools-api 模块,而 Vite 的 Rollup 插件无法解析这个模块 ps:但是我前一秒还可以,加了个别代码,突然不行,我是不相信的 = - =

码农研究僧的博客 3055

cuRobo 入门教程(二)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供正向/逆向运动学、碰撞检测、数值优化等核心功能,支持在NVIDIA Jetson Orin等平台上实现毫秒级运动规划。该库创新性地采用并行轨迹优化技术,结合nvblox工具实现深度摄像头避障功能,并通过多层ESDF结构处理动态障碍物。性能测试显示,在RTX 6000 Ada显卡上可实现99.85%的成功率,平均规划时间仅39毫秒。cuRobo还提供Python API支持神经网络集成,并具备批量环境处理能力,特别适用于工业机器人应用场景。最新版本通过算法

2506_90492529的博客 1303

OkHttp用法详解

okhttp

liuqinhou的博客 4704

linux内核学习(八)---摄像头框架移植(上)

本章来开始进行摄像头的移植,同时回顾一下V4L2的整个框架

文艺小少年的博客 113

ShareLoginLib社区贡献指南:如何参与开源项目并提交PR

ShareLoginLib是一款帮助开发者集成微信、微博和QQ等第三方登录与分享功能的工具库,类似于国内的ShareSDK或友盟。作为开源项目,社区贡献是其持续发展的核心动力。本文将为新手开发者提供完整的贡献指南,帮助你顺利参与项目并提交高质量PR。 ## 1. 准备工作:环境搭建与项目了解 ### 1.1 克隆项目仓库 首先需要将项目代码克隆到本地开发环境: ```bash git clon

gitblog_00257的博客 343

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习工具包 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")

第三单元:OkHttp

一:OkHttp的介绍 1.什么是OkHttp OkHttp是一个高效的HTTP库: 1.支持 SPDY ,共享同一个Socket来处理同一个服务器的所有请求 2.如果SPDY不可用,则通过连接池来减少请求延时 3.无缝的支持GZIP来减少数据流量 4.缓存响应数据来减少重复的网络请求 2.OkHttp的优点 OkHttp会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个...

weixin_43956180的博客 304

visio安装包

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

okhttp3测试框架_Android上的单元测试与UI测试

对大多数人而言,工作的绝大部分时间都用来开会对需求,对完需求写业务,然后测试上线。在这种情况下,单元测试成了看起来不太重要,但又略显神秘的存在,你可能总想着试试但总也没有机会实施。然而作为一名严谨的工程师,都应该对这一必要但不紧急的知识有一定的理解,从而拥有更完整的技术栈。单元测试的意义就像它字面上那样,对一个可以运行的最小单元进行测试,保证它的稳定。只要每个最小单元都是正确的,就可以保...

weixin_39701834的博客 461

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

127. 使用 OkHttp

OkHttp是一款高效的HTTP客户端库,由Square公司开发,专为Android和Java应用设计。它支持同步/异步请求,提供连接池、缓存、压缩等功能,显著提升网络性能。OkHttp解决了传统HttpURLConnection的不足,支持HTTP/2和SPDY协议,成为Android开发的事实标准。核心优势包括高效网络请求(连接复用、GZIP压缩)、简洁API设计、强大拦截器机制和完善的容错机制。适用于移动端开发、微服务通信、文件传输、WebSocket等场景。

weixin_43484713的博客 1438

okhttp3测试框架_OkHttp3系列(二)MockWebServer使用

OkHttp3是由Square贡献的HTTP客户端框架,主要用在Andorid中,但是由于其易用的API、强大的功能、请求的快速等特点,也被大量采用在后端开发领域。本系列文章讲述OkHttp3的基本使用、OkHttp3的高级功能以及OkHttp3源码的解析等,请持续关注。本篇文章是此系列的第二篇。Mockmock在测试领域是很重要的一个概念。mock测试就是在测试过程中,对于某些不容易构造或者不容...

weixin_36472962的博客 1306

OkHttp MockWebServer测试:单元测试和集成测试终极指南

OkHttp MockWebServer是一个强大的测试工具,专门用于测试HTTP和HTTPS客户端。它可以帮助开发者创建可脚本化的Web服务器来模拟真实的网络响应,确保你的应用程序在与网络交互时能够正确处理各种情况。🚀 ## 为什么选择MockWebServer进行测试? MockWebServer提供完整的HTTP堆栈测试,让你能够: - **模拟各种HTTP响应**:从成功的200响

gitblog_00683的博客 1120

Junit的使用、TestxNG的使用、OKHttp框架

2.3、@BeforeEach 和 @AfterEach。2.2、@BeforeAll 和 @AfterAll。PS:不能和@Test修饰一个方法。3、测试用例的执行顺序。3.1、默认执行顺序。

qq_56324572的博客 365

ExoPlayer OkHttp 扩展(extension-okhttp)接入指南:用 OkHttp 作为 HttpDataSource 网络栈

ExoPlayer 扩展模块 `extension-okhttp` 为播放器提供了一套基于 Square OkHttp 的 `HttpDataSource` 实现,让媒体加载完全走 OkHttp 的 HTTP/HTTP2 网络栈。本文以 [extensions/okhttp/README.md](https://link.gitcode.com/i/08be3831c4c149627a7f970a

gitblog_00567的博客 309

picasso2-okhttp3-downloader核心原理揭秘:深入理解OkHttp3与Picasso的完美结合

picasso2-okhttp3-downloader是一款为Picasso 2打造的高效图片下载组件,它巧妙地将OkHttp3的强大网络能力与Picasso的图片加载框架完美结合,为Android应用提供稳定、高效的图片下载体验。对于使用Picasso 2.5.2及更低版本的开发者来说,这是提升图片加载性能的理想选择。 ## 🚀 为什么选择OkHttp3与Picasso的组合? 在Andr

gitblog_00901的博客 1079

ExoPlayer OkHttp 扩展模块指南:用 OkHttp 网络栈替代默认 HttpDataSource

本指南围绕 ExoPlayer 仓库中的 `extensions/okhttp` 模块([README](https://link.gitcode.com/i/d5406f57d10099b3412771318c1c88ba)),讲解如何让播放器通过 Square 的 OkHttp 网络栈发起所有 HTTP(S) 媒体请求:从 Gradle 依赖接入、`OkHttpDataSource.Facto

gitblog_00214的博客 285

基于springboot的RestTemplate、okhttp和HttpClient对比

基于springboot的RestTemplate、okhttp和HttpClient对比 1、HttpClient:代码复杂,还得操心资源回收等。代码很复杂,冗余代码多,不建议直接使用。 2、RestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 引入jar包: &lt...

hd20086996的博客 2929

RxJava,Retrofit,OkHttp3结合使用

首先 亮出 gradle apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.github.jtml" minSdkVers

ArcticOcean's blog 6242

OkHttp源码分析

用了一段时间的OkHttp库, 最近总算有时间看看源码了, 主要是学学大牛的思想和编码风格:)          看了篇讲OkHttp的博客http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html , 写点不一样的吧。          对于互联网app在使用okhttp时, 一般都是实例化一个Reque

brycegao321的博客 2633
上一篇: 第一单元 HTTP基本使用方法
下一篇: 第二单元 MVC架构
安久儿
博客等级 码龄8年 2粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值