26>ASI使用总结
来源:互联网 发布:域名备案授权码 编辑:程序博客网 时间:2024/06/05 11:12
一、发送请求的2个对象1.发送GET请求:ASIHttpRequest2.发送POST请求:ASIFormDataRequest* 设置参数// 同一个key只对应1个参数值,适用于普通“单值参数”- (void)setPostValue:(id <NSObject>)value forKey:(NSString *)key// 同一个key(同一个参数名),会对应多个参数值,适用于“多值参数”- (void)addPostValue:(id <NSObject>)value forKey:(NSString *)key二、发送请求1.同步请求* startSynchronous2.异步请求* startAsynchronous三、监听请求的过程1.如何监听请求过程1> 为代理,遵守ASIHTTPRequestDelegate协议,实现协议中的代理方法request.delegate = self;- (void)requestStarted:(ASIHTTPRequest *)request;- (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders;- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data;- (void)requestFinished:(ASIHTTPRequest *)request;- (void)requestFailed:(ASIHTTPRequest *)request;2> 成为代理,不遵守ASIHTTPRequestDelegate协议,自定义代理方法request.delegate = self;[request setDidStartSelector:@selector(start:)];[request setDidFinishSelector:@selector(finish:)];3> 设置block[request setStartedBlock:^{ NSLog(@"setStartedBlock");}];[request setHeadersReceivedBlock:^(NSDictionary *responseHeaders) { NSLog(@"setHeadersReceivedBlock--%@", responseHeaders);}];[request setDataReceivedBlock:^(NSData *data) { NSLog(@"setDataReceivedBlock--%@", data);}];[request setCompletionBlock:^{ NSLog(@"setCompletionBlock");}];[request setFailedBlock:^{ NSLog(@"setFailedBlock");}];2.监听的使用注意* 如果同时设置了block和实现了代理方法,请求过程中,block和代理方法都会调用* 一般的调用顺序:代理方法 > block3.如果实现了下面的代理方法,那么responseData\responseString就没有值- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data;四、文件下载1.一般的下载1> 设置文件下载的保存路径request.downloadDestinationPath = filepath;2> 设置进度监听的代理(要想成为进度监听代理,最好遵守ASIProgressDelegate协议)request.downloadProgressDelegate = self.progressView;2.断点下载(断点续传)1> 设置文件下载的临时路径request.temporaryFileDownloadPath = tempFilepath;2> 设置支持断点续传request.allowResumeForFileDownloads = YES;五、文件上传(设置文件参数)1.如果知道文件路径,最好就用这个方法(因为简单)// ASI内部会自动识别文件的MIMEType[request setFile:file forKey:@"file"];[request addFile:file forKey:@"file"];[request setFile:file withFileName:@"basic.pptx" andContentType:@"application/vnd.openxmlformats-officedocument.presentationml.presentation" forKey:@"file"];// .....2.如果文件数据是动态产生的,就用这个方法(比如刚拍照完获得的图片数据)[request setData:data withFileName:@"test.png" andContentType:@"image/png" forKey:@"file"];六、ASIHttpRequest的常见用法1.请求超时@property (atomic, assign) NSTimeInterval timeOutSeconds;2.获得错误信息@property (atomic, retain) NSError *error;3.获得响应数据// 状态码@property (atomic, assign,readonly) int responseStatusCode;// 状态信息@property (atomic, retain,readonly) NSString *responseStatusMessage;// 服务器返回的具体数据(NSString格式)- (NSString *)responseString;// 服务器返回的具体数据(NSData格式)- (NSData *)responseData;
0 0
- 26>ASI使用总结
- 个人总结ASI的使用
- 26>ASI的基本使用
- socket.ASI.多线程总结
- 开源库ASI的使用
- ASI的详细使用
- ASI框架的使用
- ASI基本使用
- ASI
- ASI
- ASI
- ASI
- ASI
- ASI基本使用-同步请求
- ASI基本使用-异步请求
- ASI使用介绍(文件下载)
- ASI框架使用全集讲解
- 使用ASI下载网络数据
- dp问题中的转移思考(hdu 1466)
- Android性能优化(五)——利用软引用和弱引用
- DVEC++ 常见小问题
- 由于需求,要实现在应用中实现分享文字+图片到微信朋友圈。在网上找了一些资料,总结如下:
- JDK7.0新特性-语法(Language)
- 26>ASI使用总结
- JDBC
- Mongodb demo
- 快速遍历 for...in...
- 26>AFN和ASI的区别
- JavaScript中的变量和变量作用域
- epoll和input子系统实现input事件分发
- Android的Service全面总结
- FastDFS tracker 配置详解