REST接口GET方法获取文件保存到本地(C#)

(全网首发)C#通过Rest接口访问WinCC(1) 从WinCC V7.5 SP2开始,SIEMENS为WinCC增加了Rest接口,任何一款支持RESTful API规范的软件都可以通过该接口从WinCC读写数据。 为WinCC配置Rest 配置方法可以参见WinCC帮助,里面介绍的比较详细。但是有一点需要注意,就是证书的选择,参见下图所示。 图1 选择证书 完成了Rest设置后,为WinCC添加若干变量。这里我们添加了PAR1-PAR100等一些内部测试变量。 图2 创建变量 C#应用程序 创建一个WinForm应用程序,目.. 阅读详情

 REST接口GET方法获取文件保存到本地(C#)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

namespace testConsoleApplication1
{
    class Class1
    {
        static void Main(string[] args)
        {
            string urlstr = @"http://127.0.0.1/open/files/***files";
            //string urlstr = @"http://127.0.0.1/open/files/***files/1.pdf";
            //"http://creditcard.bankcomm.com/jhbc/download/discount/baiwan_c3.pdf";
            //"http://127.0.0.1/open/files/***files/1.pdf";
            //FileStream fs = new FileStream(@"d:\***1.pdf", FileMode.Create, FileAccess.Write);
            FileStream fs = new FileStream(@"d:\filesList.xml", FileMode.Create, FileAccess.Write);
            Uri url = new Uri(urlstr);
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            myHttpWebRequest.Accept = "application/xml";
            myHttpWebRequest.Headers.Add("X-***-Token-Id","***");            
            myHttpWebRequest.Method = "GET";
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            Console.WriteLine(myHttpWebResponse.StatusCode.ToString());

            Stream receiveStream = myHttpWebResponse.GetResponseStream();
            Byte[] bytes = new Byte[100];
            int count = receiveStream.Read(bytes, 0, 100);
            while (count != 0)
            {
                fs.Write(bytes, 0, count);
                count = receiveStream.Read(bytes, 0, 100);
            }
            fs.Close();
            receiveStream.Close();
            myHttpWebResponse.Close();


        }
    }
}


 

C# HttpClient调用WebService的3大绝招,你get了吗?SOAP vs REST,哪个更胜一筹? 在正式进入编码环节之前,先来了解一下WebService是什么。简单来说,WebService是一种跨编程语言和跨操作系统的远程调用技术。它可以被看作是放置在网络上的函数,任何支持HTTP协议的应用程序都可以调用这些函数。WebService通常有两种形式:SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。前者依赖于XML格式的消息传递,而后者则更倾向于轻量级的JSON或纯文本交换。 阅读详情

相关推荐

C#实现REST接口测试完整源码解析

REST 是一种基于资源的架构风格,由 Roy Fielding 在其博士论文中提出。RESTful 是指遵循 REST 原则设计的 Web 服务。set;set;set;set;set;set;HTTP 请求头可以携带元数据,例如认证令牌、客户端信息、Accept 内容类型等。Console.WriteLine($"状态码: {response.StatusCode}");Console.WriteLine($"响应内容: {content}");

weixin_34438187的博客 981

【Windows】 chrome 如何下载网站在线预览PDF文件,保存到本地

chrome 如何下载网站在线预览PDF文件,保存到本地

fruge365的博客 2万+

掌握C#开发REST API全流程

RESTful(Representational State Transfer)是一种软件架构风格,由Roy Fielding在其博士论文中首次提出。它是一种面向资源的架构,依赖于统一接口来操作资源,这些资源可以是数据项或者是服务。RESTful设计原则推荐使用HTTP的GET、POST、PUT、DELETE等方法来对资源执行增删改查操作,使得网络应用更加轻量级和易于理解。RESTful的设计原则应用广泛,它不仅简化了客户端与服务器的交互,还提高了系统的可扩展性和灵活性。

weixin_28487725的博客 1571

REST API 详解

REST(Representational State Transfer,表述性状态转移)是一种用于构建分布式系统的架构风格。REST API(Application Programming Interface,应用程序接口)是一种基于REST风格的网络API,通常用于Web服务中。REST API使用常见的HTTP方法(如GET、POST、PUT、DELETE等)与Web服务交互,通过URI(Uniform Resource Identifier,统一资源标识符)定位资源。

qq_39321234的博客 1万+

ASP.NET(C#) Web Api通过文件流下载文件的实例

下载文件到本地是很多项目开发中需要实现的一个很简单的功能。说简单,是从具体的代码实现上来说的,.NET的文件下载方式有很多种,本示例给大家介绍的是ASP.NET Web Api方式返回HttpResponseMessage下载文件到本地。实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码: using System; using System.Collections.Generic; using System.IO; using System.Linq; usin

C#操作本地文件及保存文件到数据库的基本方法总结

命名空间: using System.IO; 写文本文件 StreamWriter sw=File.CreateText(c:\\text.txt); sw.WriteLine(C#); //写入一行文本 sw.Write(www.youkuaiyun.com); //在文本末尾写入文本 sw.Flush(); //清空 sw.Close(); //关闭 读文本文件 StreamReader sr = File.OpenText(c:\\text.t

.Net Core 3.1 WebApi +Autofac+Jwt 实现前后端分离 ,通过token授权实现文件上传下载

Asp.Net Core 3.1 WebApi 实现前后端分离 文件上传 架构设计:ASP.Net Core 3.1 +Swagger+Jwt+Autofac+Redis+SqlSugar。需求痛点:因为最近在做前后端分离项目,用到了文件上传下载功能,找了很多类似的案例,基本上都是相互转载,很少有原创的,最后没有达到我想要的预期效果,故写此篇文章。 需求背景:以前在做文件上传下载,都是基于FrameWork项目或者Core Web项目实现的文件上传或下载,基于web的文件下载及权限比较好实现的。但是现在很多

qq_15632461的博客 2630

详解k-means++

一、概述 定义:k-means++是一种为k-means聚类算法选择初始值(或“种子”)的算法。它是NP-hard k-means问题的一种近似算法,它是一种避免标准k-means算法有时发现的较弱聚类的方法。 K-means与K-means++:原始K-means算法最开始随机选取数据集中K个点作为聚类中心,而K-means++按照如下的思想选取K个聚类中心:假设已经选取了n个初始聚类中心(0<n<K),则在选取第n+1个聚类中心时:距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚

qq_42364307的博客 3万+

SpringBoot大文件(百M以上)的上传下载实现技术

1背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出、还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工、挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通过浏览器上传至服务器,做一层中转便可以实现,但当这份文件非常大到了10GB级别,我们就需要思考另一种形式的技术方案了,也就是本文要阐述的方案。 技术要求主要有以下几方面: 支持超大数据量、10G级别以上 稳定性:除网络异常情况100%成功 准确性:数据无丢失,读写准确性100% .

weixin_45525177的博客 1万+

【Telephony】APN配置及加载流程&项目实践(AOSP)

学习APN关键是学会明白apns-conf.xml文件各个参数的意思,然后熟悉TelephonyProvider是如何读取文件创建数据库的,譬如数据库表的约束、文件的读写顺序等,还有读取后的ApnSetting的二次定制以及显示(例如屏蔽xcap等)。虽然一般在项目中APN的需求很简单,就是按照客户提供的APN参数添加上配置,或者在显示屏蔽一些参数,但是项目维护的过程中APN的问题也是比较多的。

weixin_44513784的博客 5513

控制台模拟前端请求实现快速刷网课时长

本教程仅用于学习前端技术和网页开发,旨在提供教育与技术指导。对于任何未经授权或违反规定的使用行为,本人不承担任何责任。注意到那个serive后面有timestamp时间戳,暗示它很可能就是每30秒汇报一次进度和播放时长的命令,我们右键——复制——复制为fetch。有的网站上的网课需要的不仅仅是进度,而是时长,所以倍速插件失效,但我们可以使用控制台命令来模拟请求实现快速刷网课时长。尝试修改即可,例如我修改time为800,然后复制粘贴到控制台执行。播放视频,等待前端请求出现,然后复制前端请求为fetch。

m0_74823408的博客 2068

c# HTTP请求方法(GET,POST,PUT,DELETE)

目录 什么是REST? 什么是Restful? 为什么使用Restful? 客户端请求REST模式的WEB SERVICE接口 GET和POST的区别: c# 请求代码 最近经常对接restful风格的API,本身对rest也比较陌生,所以总结下使用过程中看过的资料,话不多说,我们先来了解下REST PS(REST:是一组架构约束条件和原则,REST是Roy Thomes Fielding在他2000年的博士论文中提出的。Roy Thomas Fielding是HTTP协议(v1.0和v1.

潘达小新 1万+

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

C#也能接入大模型?通过REST API调用本地部署服务

通过REST API,C#可轻松接入本地部署的大模型服务,无需依赖Python环境。利用ms-swift等工具启动兼容OpenAI格式的接口,企业能在保障数据安全的前提下,为WinForm、WPF或ASP.NET应用快速集成智能对话、文本生成能力,实现跨语言低耦合的AI升级。

weixin_31139479的博客 882

docker配置国内镜像源

【代码】docker配置国内镜像源。

愿听风成曲 9616

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 407

C#如何使用REST接口读写数据

根据网上的文章整理了下。先定义几个枚举/// &lt;summary&gt; /// HTTP访问method 常用的几样 /// &lt;/summary&gt; public enum HttpVerb { /// &lt;summary&gt; /// get:获取 ...

IT Tech 6862

ESP32-C3入门教程 环境篇③——VS Code IDE快速入门

文章目录一、安装Visual Studio Code二、安装扩展三、配置ESP-IDF 插件四、创建工程五、配置工程5.1 选择目标芯片5.2 项目配置六、编译工程七、固件分析七、固件下载八、串口日志九、单步调试 一、安装Visual Studio Code 下载并安装Visual Studio Code 二、安装扩展 左侧扩展 搜索espressif 点击安装 三、配置ESP-IDF 插件 按下F1按键 输入configure esp-idf extension EXPRESS,如果你

8304

C# 请求接口RestfulAPI,Get请求,Post请求,上传附件及带参数

/// <summary> /// GET /// </summary> /// <param name="url"></param> /// <returns></returns> public static string HttpGet(string url) { //ServicePointMa...

成长,快乐,与汝相伴! 4478

Matlab波动光光学系统

波动光学是一种研究光波传播过程的理论,按照其处理的信息类型不同,可以分为相干和非相干波动光学,相干波动光学可以用作特定光学系统的分析和设计,其主要依赖物理光学和电磁波的基本原理,以及光学干涉和衍射的经验方程式,其中光波传播过程是以复数形式表示的,包括振幅和相位两个方面。近年来光学技术得到了广泛的应用和发展,波动光光学系统是其中一种重要的光学系统,它主要是利用波动光学原理,通过计算机模拟实现各种光学系统的设计、分析和优化,可应用于大气光传输、光束整形、分析系统的衍射和干涉特性,包括利用。

weixin_50547796的博客 260

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# 实现Rest 风格的web服务

C# 实现Rest 风格的web服务 REST(Representational State Transfer)是 RoyFielding 提出的一个描述互联系统架构风格的名词。为什么称为REST?Web本质上由各种各样的资源组成,资源由URI 唯一标识。浏览器(或者任何其它类似于浏览器的应用程序)将展示出该资源的一种表现方式,或者一种表现状态。如果用户在该页面中定向到指向其它资源的链接,则将访

farawayplace613的专栏 1万+

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

ASP.NET Core 如何使用 C# 从端点发出 GET 请求

使用 JWT Bearer Authentication 从端点获取数据非常简单。使用 . 从端点发布 GET 数据非常容易HttpClient,WebClient并且HttpWebRequest不应使用,因为在撰写本文时它们已被弃用。使用 C#,从 REST API 端点获取 JSON;如何从 REST API 接收 JSON 数据。本文需要 ASP .NET Core,并兼容 .NET Core 3.1、.NET 6和.NET 8。要将数据发布到端点,请参阅本文。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 10万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

使用.net c#操作GeoServer REST(Get/Post)

使用c# 操作GeoServer服务 Get方式: #region 向服务发送Get请求 public string CreateGet(string url) { return CreateGet(url, Encoding.UTF8); } public string CreateGet(string url, Encoding c...

小怪兽 1510

浅议C#客户端和服务端通信的几种方法:Rest和GRPC和其他

本文来自:https://michaelscodingspot.com/rest-vs-grpc-for-asp-net/浅议C#客户端和服务端通信的几种方法:Rest和GRPC在C#客...

farway000的博客 2730
上一篇: Filestream读写文件
下一篇: http://www.codeproject.com/Questions/117324/upload-file-in-c-with-HttpWebRequest
emptynull
博客等级 码龄15年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值