ASIHttpRequest+SBJson完成Http请求,以及json数据解析

上、下拉电阻(定义、强弱上拉、常见作用、吸电流、拉电流、灌电流) 1.上、下拉电阻定义 上拉电阻是把一个信号通过一个电阻接到电源(Vcc),下拉电阻是一个信号通过一个电阻接到地(GND)。 2.强上拉、弱上拉 强上拉、弱上拉的强弱只是上拉电阻的阻值不同,没有什么严格区分。例如:50Ω上拉,一般成为强上拉;100kΩ上拉则称为弱上拉。下拉也是一样的。强拉电阻的极端就是0Ω电阻,即将信号线直接与电源或低相连接。 3.上、下拉电阻的作用 因为上下拉电阻的作用概念很宽泛,不用领域的使用方法也不同,常见使用方法整理如下: ... 阅读详情

一、添加ASIHttpRequest

方法:http://blog.youkuaiyun.com/debug__boy/article/details/7485094


二、添加SBJson

SBJson的开放源码在github上托管。


三、以上工作完成之后,下面就是敲代码了

(1)首先加入头文件

#import "ASIHTTPRequest.h"
#import "SBJson.h"

(2)Http请求

    NSURL *url = [NSURL URLWithString:@"http://......."];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request startAsynchronous];         //对应的同步请求[request startSynchronous];

(3)请求完成后,会调用requestFinished方法

-(void) requestFinished: (ASIHTTPRequest *) request {

	NSString *responseData = [request responseString];      //获得服务器response的数据
	//解析Json数据....
}

(4)Json数据处理

(a)处理一条记录

测试用的字符串是:responseData =@"{\"user\":{\"id\":21,\"name\":\"xxx\"}}";

SBJsonParser * parser = [[SBJsonParser alloc] init];  
    NSError * error = nil;  
    NSMutableDictionary *jsonDic = [parser objectWithString:responseString error:&error];
    
    NSLog(@"%@",[jsonDic objectForKey:@"user" ]);
    NSMutableDictionary * dicUserInfo = [jsonDic objectForKey:@"user"];
    NSLog(@"%@",[dicUserInfo objectForKey:@"id"]);
    NSLog(@"%@",[dicUserInfo objectForKey:@"name"]);


(b)处理多条记录

测试用的字符串是:

    SBJsonParser * parser = [[SBJsonParser alloc] init];  
    NSError * error = nil;  
    NSArray *memberList = [parser objectWithString:responseString error:&error];  
    
    for(NSDictionary *member in memberList)
    {
        NSLog(@"dibitsID = %d", [[member objectForKey:@"dibitsID"] integerValue]);
        NSLog(@"type = %d", [[member objectForKey:@"type"] integerValue]);
        NSLog(@"time = %@", [member objectForKey:@"updated"]);
        NSLog(@"\n");
    }  



智能车竞赛新手必看:用AD21从零画一块英飞凌TC264核心板(附开源PCB文件) 本文详细介绍了使用Altium Designer 21(AD21)从零开始设计英飞凌TC264核心板的完整流程,涵盖原理图绘制、PCB布线到最终DRC检查的全过程。针对智能车竞赛新手,提供了实用的硬件设计技巧和开源PCB文件,帮助快速掌握TC264核心板开发。 阅读详情

相关推荐

TASK02【datawhale组队学习】视觉感知与手眼协调,计算机视觉在机器人中应用,手眼标定算法实现,深度估计与3D重建

参考教程AI硬件与机器人技术教程:https://github.com/datawhalechina/ai-hardware-robotics视觉感知与手眼协调,计算机视觉在机器人中应用,手眼标定算法实现,深度估计与3D重建单目深度估计 (Monocular Depth Estimation)DPT 的全称是 Dense Prediction Transformer。

m0_52024881的博客 1191

HttpServletRequest 接收并解析获取JSON数据

最近在弄Security权限时遇到attemptAuthentication接口接收登录参数的时候只能用request,但是现在很多项目都是已经使用前后端分离的开发模式了 像以往我们在Controller的时候处理json数据转换只需要标注@RequestBody注解即可. 有问题就要解决,打开debug找了一下request的字段内容,并没有发现我所需...

weixin_34226182的博客 1万+

RingBuffer 环形缓冲区----镜像指示位

称作环形缓冲区,也称作环形队列(circular queue),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。这个宏定义用于计算向下对齐的地址。size和align。size是要对齐的内存大小,align是所需的对齐大小。这个宏返回一个值,该值是size向下对齐到align边界后的地址。例如,假设我们有一个 32 位的系统,并且我们需要将数据对齐到 64 位的边界。我们可以使用在这个例子中,data数组的大小为 10 个元素,我们需要将其对齐到 8 字节边界。宏返回data。

呵呵哒!的博客 2406

HttpServletRequest 解析获取JSON数据

HttpServletRequest req=(HttpServletRequest)args0; ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (null != attributes) { HttpServletRequest request = attributes.getRequest(); String result=

qq_33240556的博客 7238

避坑指南:雅特力AT32F403A在Keil5中的V2库配置常见问题解析

本文详细解析了国产MCU雅特力AT32F403A在Keil5中配置V2库的常见问题,包括工程创建、库文件配置、编译错误和外设设置等关键环节。针对项目文件夹结构混乱、芯片型号选择错误、头文件路径设置不当等典型问题提供实用解决方案,帮助开发者高效避坑,提升开发效率。

weixin_30335575的博客 375

关于小样本学习综述论文的总结

对小样本学习综述的个人总结

qq_46176086的博客 5456

记录 通过 hutool 使用 HttpRequest 获取 URL 返回的 JSON并解析

1、首先需要 hutool-all-5.5.4.jar 包可以直接在https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.5.4/​​​​​​​ 下载 2、通过里面拥有的源码分析,有很多常用的方法,post、get等等 这里放一个最常用的例子: HttpResponse res = HttpRequest.get("你的url") .contentType("application/json") .header("X-A...

a1099380657的博客 4685

Python实现将txt文件转换成对应的excel或csv文件

此外,在上面的例子中,txt文件是以“空格”分隔的,如果遇到“逗号”分隔的,只需将上述代码中的。本文是该专栏的第29篇,后面会持续分享python的各种干货知识,值得关注。工作上可能会遇到这样的情况,使用python将某个txt文本,按照。转换成对应的excel文件或者是csv文件。”需要替换成你的目标txt文件的绝对路径。库,这里直接引用就好。需要注意的是,上述代码中的“

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 4506

c#实现http请求并解析返回之json

          作为一个新手,在实习的时候接触了web service,当时感觉十分新奇,就在网上搜索了一些web service,做了一些个比如天气查询之类的东西,但是网上提供的大部分的接口是通过http请求来实现的,所以就萌发了想要用C#发出http请求来实现天气查询的想法。            C#是通过HttpWebRequest类和HttpWebResponseL类来实现ht...

green__apple的专栏 8457

(王道计算机组成原理笔记)第一章计算机系统概述-第二节:计算机系统层次结构 1(计算机系统组成、计算机硬件)

文章目录一:冯诺依曼体系结构(1)存储程序计算机(2)层次结构二:计算机硬件概述(1)存储器A:存储元、存储单元、存储体、存储字和存储字长B:MAR 一:冯诺依曼体系结构 在冯诺依曼体系结构中,计算机的硬件主要有**存储器,运算器,控制器,输入和输出设备(也叫做I/O设备)**组成。 (1)存储程序计算机 冯诺依曼体系结构也叫做存储程序计算机,计算器和计算机的唯一区别就是计算器是不能编程的,只能做电路板中设定好的固定的运算。 这也就意味着计算器本质就是一个不能编程的计算机,其在硬件层面已经将逻辑写死,如果

快乐江湖的博客 1万+

大厂硬件机试选择题与判断题解析-卷1

本文精选30道硬件工程师机试题目,涵盖模拟电路、数字电路、PCB设计三大方向。模拟电路部分重点考察运算放大器、滤波器、整流电路等核心知识;数字电路部分聚焦计数器、电平转换等关键技术;PCB设计部分强调高速信号处理、阻抗控制等实践要点。题目均来自华为、小米等大厂真题,剔除基础题,每道题附详细解析,包括正确答案推导过程及相关公式说明。特别针对易错概念(如负反馈类型判断、Q值与带宽关系等)进行重点解析,帮助考生系统掌握硬件设计的核心考点和解题思路。

启芯硬件的博客 677

iOS代码技巧之ASIHttpRequest类库的使用及Json解析(以解析中国天气网天气预报为例)...

声明:由于ASIHttpRequest作者已早不进行维护,而且ios版本已经更新到7,为了大家的代码在ios7下能更加高效和保险,建议使用AFNetworking类库,此类库也是ASI的作者所推荐的,如只是学习了解网络方面内容,可以参考本博客,关于AFNetworking的使用,相...

chenghuyi8987的博客 151

3.嵌入式控制器EC学习,源码框架(60/64端口)(一)

服务函数剖析 上一篇讲到while循环会一直查询十六个标志位是否满足要求,一旦其中某个标志位为1时,程序将会执行相应的服务函数,而执行服务函数是通过函数指针(service_table[ _R1 ])();来实现的。接下来我们分别来看看这十六个服务函数分别包含了哪些内容。 16个函数的函数名如下: const FUNCT_PTR_V_V code service_table[16] = { // Hi-Level Service Service_PCI, // Host 6

qq_30135687的博客 4159

IOS网络请求之ASIHTTPRequest

最近做了一个项目关于网络请求的 开始确实找不着北,看了一些资料,自己写下来印象应该比较深刻 首先:加入这几个库 头文件记得加上 #import "ASIHTTPRequest.h" 开始请求  NSURL * url = [NSURL URLWithString:@"http://192.168.0.121:8085/login?"];         AS

bloues的专栏 887

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IOS学习十四:网络之ASIHttpRequest和SBJson简单使用

现在的学习基本脱离了那几本教程, 上个礼拜正式着手代码编写。 同事UI弄得比较快,于是我只好写写网络通信,数据源模型设计以及加解密。 这边简单的说下常用的第三方网络库以及,以及json数据协议格式的简单使用。 先引入目前网上点击率最高的关于这个使用的文章(源文不详,呵呵) ASIHTTPRequest类库简介和使用说明 我只是简单说下一般项目中会用到的最基础一部分,有的东西都是...

mmdev 85

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

iOS开源库

ASIHTTPRequest 简介:HTTP请求 http://allseeing-i.com/ASIHTTPRequest/ SBJson 简介:JSON解析 http://stig.github.com/json-framework/ FMDB 简介:SQLite数据库 https://github.com/ccgus/fmdb wsdl2objc 简介:...

weixin_33901843的博客 131

OV9734 DATASHEET,完整规格书

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

OS开发过程中常用开源库

开发iOS APP也有一段时间了,在开发过程中使用或了解过许多开源库,在这里分享出来。 1、TBXML(GitHub或官网上可以下载) TBXML是一个基于DOM解析的XML库,使用非常方便。我自已基于TBXML写了一个XML TO Dictionary的工具类,有需要的可以联系我。 2、SBJSON (GitHub可以下载) 目前很多项目的HTTP 通讯都用JSON通讯。 SBJSON ...

weixin_34341117的博客 119

使用ASIHTTPRequest获得天气信息

使用ASIHTTPRequest+JSON一个简单的天气获取Demo,直接上代码: 工程结构截图如下: 加入ASIHTTPRequest的方法请查看上一篇文件,ViewController.h代码如下: 1 // 2 // ViewController.h 3 // ASIHTTPRequestDemo 4 // 5 // Created by Fox

jinyeweiyang的专栏 321

iOS开发过程中常用开源库

开发iOS APP也有一段时间了,在开发过程中使用或了解过许多开源库,在这里分享出来。 1、TBXML(GitHub或官网上可以下载) TBXML是一个基于DOM解析的XML库,使用非常方便。我自已基于TBXML写了一个XML TO Dictionary的工具类,有需要的可以联系我。 2、SBJSON (GitHub可以下载) 目前很多项目的HTTP 通讯都用JSON通讯。 SBJSON ...

weixin_30666753的博客 122

IOS IPhone 开发需要的开源库

前言 1:IOS &IPhone 网络异步加载 asi-http-request 【1-1 ASI HTTP 下载地址】 【1-2 注意事项】 【1-3 小试牛刀】      2:解析JSON数据 SBJSON 【 2-1 SBJSON 下载地址】 【2-2 注意事项】 【2-3 小试牛刀】 3:加载网络数据的时候 显示onLoading动画图片 MBProgressHUD

xiaopeng12300的专栏 571

IOS IPhone 开发需要的开源库[编辑中.. 不断更新]

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34392843的博客 95

汇总iOS开发中需要用到的开源库

我是 java & php 程序员,遇到了坑爹的iPhone,被逼无奈在崩溃的边缘下学习Object-C ,在学习中遇到了很多 奇葩,无知,龌蹉,呕吐的问题(弱弱的说 : 有的些问题到现在还不知道具体的原理)故此把开发中所有遇到的问题,和需要使用的开源库 一一记载下来,为那些苦B的要学习Object-C的屌丝们加点料吧。本文纯粹记录性游记类文章,学术性观摩团请绕行,专家请绕行。在编写过程中避免不了

birthmarkqiqi的专栏 362

推荐几个用过的ios框架

从开始做ios开发到现在用过不少框架,感觉有些框架的确很棒,现不忍独食,拿出来与大家分享。这些框架可以加速开发,免除大家写“底层”代码的困扰。 1.ASIHTTPRequest 大名鼎鼎的asi很多人应该都用过,同步请求,异步请求,队列请求,文件下载,cookie,cache

volcan1987的专栏 6096

ios框架

1.ASIHTTPRequest 大名鼎鼎的asi很多人应该都用过,同步请求,异步请求,队列请求,文件下载,cookie,cache等等只要你做基于http的应用他都封装好了。传送门:http://allseeing-i.com/ASIHTTPRequest/ 2.MBProgressHUD 这个是一个显示等待状态的框架,有很多效果,但是用起来很简单,用法在他官方的例子中就有。传...

mobile payment development 176

IOS 各种常用第三方解析(品种齐全)

在iOS开发中不可避免的会用到一些第三方类库,它们提供了很多实用的功能,使我们的开发变得更有效率;同时,也可以从它们的源代码中学习到很多有用的东西。 Reachability 检测网络连接 用来检查网络连接是否可用:包括WIFI和WWAN(3G/EDGE/CDMA等)两种工作模式。 可以从Apple网站下载到:http://developer.apple.com/library/io

天微微亮 627
上一篇: ASIHttpRequest组件添加
下一篇: ASIHttpRequest登录与Basic验证
NoNeil
博客等级 码龄15年 108粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值