您的位置:首页 > 理论基础 > 计算机网络

使用AFNetworing进行网络请求

2014-08-05 08:42 267 查看
方式一
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setTimeoutInterval:3];
[manager setResponseSerializer:[AFJSONResponseSerializer new]];

NSString *strURL = @"http://www.xxx.com/validlogin";
[manager GET:strURL parameters:@{@"user_id": @"1"}  success:^(NSURLSessionDataTask *task, id responseObject) {

NSDictionary *dic = (NSDictionary *)responseObject;

} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];
方式二
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://wwww.163.com"]];
AFHTTPRequestOperation *httpOpt = [[AFHTTPRequestOperation alloc] initWithRequest:req];
[httpOpt setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
//进行返回类型数据转换
} failure:^(AFHTTPRequestOperation *operation, NSError *error)
{

}];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperation:httpOpt];
加载网络图象
NSURL *url              = [NSURL URLWithString:strURL];
[cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"image_home_replace"]];
<p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">AFNetworking</span>官网入门教程简单翻译,学习</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFNetworking <span style="word-wrap: normal; word-break: normal;">是一个能够快速使用的</span>ios<span style="word-wrap: normal; word-break: normal;">和</span>mac os x<span style="word-wrap: normal; word-break: normal;">下的网络框架,它是构建在</span>Foundation URL Loading System<span style="word-wrap: normal; word-break: normal;">之上的,封装了网络的抽象层,可以方便的使用,</span>AFNetworking<span style="word-wrap: normal; word-break: normal;">是一个模块化架构,拥有丰富</span>api<span style="word-wrap: normal; word-break: normal;">的框架。</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">一、<span style="word-wrap: normal; word-break: normal;">HTTP</span>请求与操作:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">1</span><span style="word-wrap: normal; word-break: normal;">、</span>AFHTTPRequestOperationMa<wbr>nager:</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">该类封装与<span style="word-wrap: normal; word-break: normal;">Web</span>应用程序进行通信通过<span style="word-wrap: normal; word-break: normal;">HTTP</span>,包括要求制作,响应序列化,网络可达性监控和安全性,以及要求经营管理的常见模式。</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">GET <span style="word-wrap: normal; word-break: normal;">请求:</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFHTTPRequestOperationMa<wbr>nager *manager = [AFHTTPRequestOperationMa<wbr>nager manager];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[manager GET:<span style="word-wrap: normal; word-break: normal;">@"http://example.com/resources.json"</span> parameters:<span style="word-wrap: normal; word-break: normal;">nil</span> success:^(AFHTTPRequestOperation *operation, <span style="word-wrap: normal; word-break: normal;">id</span>responseObject) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"JSON: %@"</span>, responseObject);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} failure:^(AFHTTPRequestOperation *operation, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">POST</span> 带有表单参数的<span style="word-wrap: normal; word-break: normal;">POST</span>请求:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFHTTPRequestOperationMa<wbr>nager *manager = [AFHTTPRequestOperationMa<wbr>nager manager];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSDictionary</span> *parameters = <span style="word-wrap: normal; word-break: normal;">@{</span><span style="word-wrap: normal; word-break: normal;">@"foo"</span>: <span style="word-wrap: normal; word-break: normal;">@"bar"</span><span style="word-wrap: normal; word-break: normal;">}</span>;</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[manager POST:<span style="word-wrap: normal; word-break: normal;">@"http://example.com/resources.json"</span> parameters:parameters success:^(AFHTTPRequestOperation *operation, <span style="word-wrap: normal; word-break: normal;">id</span> responseObject) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"JSON: %@"</span>, responseObject);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} failure:^(AFHTTPRequestOperation *operation, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">POST Multi-Part<span style="word-wrap: normal; word-break: normal;">格式的表单文件上传请求</span>:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFHTTPRequestOperationMa<wbr>nager *manager = [AFHTTPRequestOperationMa<wbr>nager manager];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSDictionary</span> *parameters = <span style="word-wrap: normal; word-break: normal;">@{</span><span style="word-wrap: normal; word-break: normal;">@"foo"</span>: <span style="word-wrap: normal; word-break: normal;">@"bar"</span><span style="word-wrap: normal; word-break: normal;">}</span>;</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURL</span> <span style="word-wrap: normal; word-break: normal;">*filePath = [</span><span style="word-wrap: normal; word-break: normal;">NSURL</span> <span style="word-wrap: normal; word-break: normal;">fileURLWithPath</span><span style="word-wrap: normal; word-break: normal;">:</span>@"file://path/to/image.png"<span style="word-wrap: normal; word-break: normal;">];</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[manager POST:<span style="word-wrap: normal; word-break: normal;">@"http://example.com/resources.json"</span> parameters:parameters constructingBodyWithBloc<wbr>k:^(<span style="word-wrap: normal; word-break: normal;">id</span>formData) {</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> [formData appendPartWithFileURL:filePath name:<span style="word-wrap: normal; word-break: normal;">@"image"</span> error:<span style="word-wrap: normal; word-break: normal;">nil</span>];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} success:^(AFHTTPRequestOperation *operation, <span style="word-wrap: normal; word-break: normal;">id</span> responseObject) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Success: %@"</span>, responseObject);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} failure:^(AFHTTPRequestOperation *operation, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">二、</span>Session<span style="word-wrap: normal; word-break: normal;">管理:</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">1</span><span style="word-wrap: normal; word-break: normal;">、</span>AFURLSessionManager<span style="word-wrap: normal; word-break: normal;">:创建和管理制定的</span>NSURLSession<span style="word-wrap: normal; word-break: normal;">对象</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">2</span><span style="word-wrap: normal; word-break: normal;">、</span>NSURLSessionConfiguratio<wbr>n<span style="word-wrap: normal; word-break: normal;">对象必须实现</span>, , , <span style="word-wrap: normal; word-break: normal;">协议</span></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">创建一个下载任务:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">NSURLSessionConfiguratio<wbr>n *configuration = [NSURLSessionConfiguratio<wbr>n defaultSessionConfigurat<wbr>ion];</wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfigura<wbr>tion:configuration];</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURL</span> <span style="word-wrap: normal; word-break: normal;">*URL = [</span><span style="word-wrap: normal; word-break: normal;">NSURL</span> <span style="word-wrap: normal; word-break: normal;">URLWithString</span><span style="word-wrap: normal; word-break: normal;">:</span>@"http://example.com/upload"<span style="word-wrap: normal; word-break: normal;">];</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">NSURLRequest <span style="word-wrap: normal; word-break: normal;">*request = [</span>NSURLRequest requestWithURL<span style="word-wrap: normal; word-break: normal;">:</span><span style="word-wrap: normal; word-break: normal;">URL</span><span style="word-wrap: normal; word-break: normal;">];</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURL</span> *filePath = [NSURL fileURLWithPath:<span style="word-wrap: normal; word-break: normal;">@"file://path/to/image.png"</span>];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURLSessionUploadTask</span> *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:<span style="word-wrap: normal; word-break: normal;">nil</span>completionHandler:^(NSURLResponse *response, <span style="word-wrap: normal; word-break: normal;">id</span> responseObject, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> <span style="word-wrap: normal; word-break: normal;">if</span> (error) {</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr>  <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> } <span style="word-wrap: normal; word-break: normal;">else</span> {</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr>  <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Success: %@ %@"</span>, response, responseObject);</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> }</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[uploadTask resume];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">创建一个数据流任务<span style="word-wrap: normal; word-break: normal;">:</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">NSURLSessionConfiguratio<wbr>n *configuration = [NSURLSessionConfiguratio<wbr>n defaultSessionConfigurat<wbr>ion];</wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfigura<wbr>tion:configuration];</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURL</span> *URL = [NSURL URLWithString:<span style="word-wrap: normal; word-break: normal;">@"http://example.com/upload"</span>];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURLRequest</span> *request = [NSURLRequest requestWithURL:URL];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURLSessionDataTask</span> *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, <span style="word-wrap: normal; word-break: normal;">id</span> responseObject, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> <span style="word-wrap: normal; word-break: normal;">if</span> (error) {</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr>  <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> } <span style="word-wrap: normal; word-break: normal;">else</span> {</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr>  <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"%@ %@"</span>, response, responseObject);</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> }</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[dataTask resume];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">四、使用</span>AFHTTPRequestOperation</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">1</span><span style="word-wrap: normal; word-break: normal;">、</span>AFHTTPRequestOperation<span style="word-wrap: normal; word-break: normal;">是使用</span>HTTP<span style="word-wrap: normal; word-break: normal;">或</span>HTTPS<span style="word-wrap: normal; word-break: normal;">协议的</span>AFURLConnectionOperation<wbr><span style="word-wrap: normal; word-break: normal;">的子类。</span></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">它封装的获取后的<span style="word-wrap: normal; word-break: normal;">HTTP</span>状态和类型将决定请求的成功与否。</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">2</span><span style="word-wrap: normal; word-break: normal;">、虽然</span>AFHTTPRequestOperationMa<wbr>nager<span style="word-wrap: normal; word-break: normal;">通常是最好的去请求的方式,但是</span>AFHTTPRequestOpersion<span style="word-wrap: normal; word-break: normal;">也能够单独使用。</span></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">通过<span style="word-wrap: normal; word-break: normal;">GET</span>方式:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURL *URL = [NSURL URLWithString:</span>@"http://example.com/resources/123.json"<span style="word-wrap: normal; word-break: normal;">];</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSURLRequest</span> *request = [NSURLRequest requestWithURL:URL];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">op.responseSerializer = [AFJSONResponseSerializer<wbr> serializer];</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[op setCompletionBlockWithSu<wbr>ccess:^(AFHTTPRequestOperation *operation, <span style="word-wrap: normal; word-break: normal;">id</span> responseObject) {</wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"JSON: %@"</span>, responseObject);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} failure:^(AFHTTPRequestOperation *operation, NSError *error) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"Error: %@"</span>, error);</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[[NSOperationQueue mainQueue] addOperation:op];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">连续操作多个:</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[objc] view plaincopyprint?<span style="word-wrap: normal; word-break: normal;">在</span>CODE<span style="word-wrap: normal; word-break: normal;">上查看代码片派生到我的代码片</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">NSMutableArray *mutableOperations = [NSMutableArray array];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">for</span> (NSURL *fileURL <span style="word-wrap: normal; word-break: normal;">in</span> filesToUpload) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWith<wbr>Method:<span style="word-wrap: normal; word-break: normal;">@"POST"</span>URLString:<span style="word-wrap: normal; word-break: normal;">@"http://example.com/upload"</span> parameters:<span style="word-wrap: normal; word-break: normal;">nil</span> constructingBodyWithBloc<wbr>k:^(<span style="word-wrap: normal; word-break: normal;">id</span> formData) {</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr>  <wbr>  <wbr> [formData appendPartWithFileURL:fileURL name:<span style="word-wrap: normal; word-break: normal;">@"images[]"</span> error:<span style="word-wrap: normal; word-break: normal;">nil</span>];</wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> }];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr> <wbr>  <wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr> <wbr>  <wbr></wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> [mutableOperations addObject:operation];</wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;">NSArray</span> *operations = [AFURLConnectionOperation<wbr> batchOfRequestOperations<wbr>:<span style="word-wrap: normal; word-break: normal;">@[</span>...<span style="word-wrap: normal; word-break: normal;">]</span> progressBlock:^(NSUInteger numberOfFinishedOperatio<wbr>ns, NSUInteger totalNumberOfOperations) {</wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"> <wbr>  <wbr> NSLog(<span style="word-wrap: normal; word-break: normal;">@"%lu of %lu complete"</span>, numberOfFinishedOperatio<wbr>ns, totalNumberOfOperations);</wbr></wbr></wbr></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">} completionBlock:^(NSArray *operations) {</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;"><span style="word-wrap: normal; word-break: normal;"> <wbr>  <wbr> NSLog(</wbr></wbr></span>@"All operations in batch complete"<span style="word-wrap: normal; word-break: normal;">);</span></p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">}];</p><p style="margin-top: 0px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; border: 0px; list-style: none; word-wrap: normal; word-break: normal; line-height: 21px; color: rgb(144, 144, 144); font-family: simsun; font-size: 14px;">[[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:<span style="word-wrap: normal; word-break: normal;">NO</span>];</p>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: