ASIHttpRequest addRequestHeader的处理
2014-10-14 14:33
302 查看
我现在用到了ASIHttpRequest来读取数据,这时候我发现里面的头在很多时候都是一样的。如用户的令牌,设备类型,ios版本,软件版本等
如果在每一个访问网络的地方都加这一个,这样重复性就很大,所以需要抽出来。
我的想法是在父类中放一个方法,把我们需要访问的网址给这个方法就可以了,所以我在父类中写了一个读取的方法。
本来我是想把读到的值直接作返回值返出去,可是好象是异步处理的,返不出去。我就只能想办法通过Delegate接口来把值传出去了。
就是其中的
现在我就通过继承父类的接口来实现数据的处理。
实现方法如下:
这样就实现了我把公用的头放到父类中的功能。
其中的(int)nunmber是处理一个页面中会出现多次的请求,来区分是处理哪一个数据的。
[self.requestaddRequestHeader:@"Authorization"value:[SaveDatagetStringFromSetting:@"Ticket"]]; [self.requestaddRequestHeader:@"DeviceType"value:[StaticDatagetDeviceType]]; [self.requestaddRequestHeader:@"SystemVersion"value:[StaticDatagetSystemVersion]]; [self.requestaddRequestHeader:@"LocalVersion"value:[StaticDatagetLocalVersion]];
如果在每一个访问网络的地方都加这一个,这样重复性就很大,所以需要抽出来。
我的想法是在父类中放一个方法,把我们需要访问的网址给这个方法就可以了,所以我在父类中写了一个读取的方法。
-(void)readNetworkDataWithUrl:(NSString*)urlnumber:(int)number { [HUDshow:YES];//显示加载中状态 url=[NSStringstringWithFormat:@"%@%@",[StaticDatagetUrlDomain],url]; //访问的地址 NSURL*_url=[NSURLURLWithString:url]; //访问 self.request=[ASIHTTPRequestrequestWithURL:_url]; //超时时间多少秒 [self.requestsetTimeOutSeconds:120]; //访问失败重新访问次数 [self.requestsetNumberOfTimesToRetryOnTimeout:2]; //是否使用持久化连接 [self.requestsetShouldAttemptPersistentConnection:NO]; [self.requestaddRequestHeader:@"Authorization"value:[SaveDatagetStringFromSetting:@"Ticket"]]; [self.requestaddRequestHeader:@"DeviceType"value:[StaticDatagetDeviceType]]; [self.requestaddRequestHeader:@"SystemVersion"value:[StaticDatagetSystemVersion]]; [self.requestaddRequestHeader:@"LocalVersion"value:[StaticDatagetLocalVersion]]; //获取数据成功执行的方法 [self.requestsetCompletionBlock:^(void){ [HUDhide:YES];//隐藏加载中状态 NSString*jsonString=[self.requestresponseString]; [self.delegate1viewBaseReadDataSuccessWith:jsonStringnumber:number]; }]; //获取数据失败执行的方法 [self.requestsetFailedBlock:^(void){ [HUDhide:YES];//隐藏加载中状态 if([self.delegate1respondsToSelector:@selector(viewBaseReadDataFailed:)]){ [self.delegate1viewBaseReadDataFailed:number]; } }]; [self.requestsetDelegate:self]; [self.requeststartAsynchronous]; }
本来我是想把读到的值直接作返回值返出去,可是好象是异步处理的,返不出去。我就只能想办法通过Delegate接口来把值传出去了。
就是其中的
[self.delegate1viewBaseReadDataSuccessWith:jsonStringnumber:number]; [self.delegate1viewBaseReadDataFailed:number];
现在我就通过继承父类的接口来实现数据的处理。
实现方法如下:
#pragmamark- #pragmamarkViewBaseForConnectNetworkDelegate -(void)viewBaseReadDataSuccessWith:(NSString*)jsonStringnumber:(int)nunmber { NSMutableDictionary*tempDictionary=[jsonStringJSONValue]; boolresult=[[tempDictionaryobjectForKey:@"Result"]intValue]; if(result){ NSLog(@"intrue"); NSString*ticket=[[tempDictionaryobjectForKey:@"Content"]objectForKey:@"Ticket"]; NSLog(@"%@",ticket); }else{ NSLog(@"infalse"); NSString*message=[tempDictionaryobjectForKey:@"Message"]; NSLog(@"%@",message); } LoginSuccessViewController*newView=[[LoginSuccessViewControlleralloc]init]; newView.title=@"登录成功"; newView.hidesBottomBarWhenPushed=YES; [self.navigationControllerpushViewController:newViewanimated:YES]; } -(void)viewBaseReadDataFailed:(int)number{ NSLog(@"出错执行的方法"); }
这样就实现了我把公用的头放到父类中的功能。
其中的(int)nunmber是处理一个页面中会出现多次的请求,来区分是处理哪一个数据的。
相关文章推荐
- ASIHTTPRequest处理收到的服务器响应数据
- URL中的汉字和特殊字符编码,以及ASIHTTPRequest对此的处理
- 【纠错记录】有关ASIHTTPRequest异步请求代理Delegate报错的处理
- ASIHTTPRequest实现对PUT,DELETE,POST,GET请求方式的处理
- ASIHTTPRequest处理收到的服务器响应数据
- ASIHTTPRequest处理收到的服务器响应数据
- ASIHTTPRequest使用第三方库处理网络请求
- ios-ASIHTTPRequest的Reachability可以监听网络,网络出现状况来不同的处理
- asihttprequest 请求返回时崩溃处理
- ASIHttprequest(网络处理第三方框架)中文版 不是最新版 特别是ios5之后部分bug要修复
- 使用HttpWebRequest 的 Post 方法处理简单的WEB service
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- Http Request处理生命周期图[转帖]
- 获取IE的HTTP RequestHeader的Accept字段的内容
- IE6与IE7对使用不同版本的XMLHttpRequest对像的处理有差异。
- SQL 2005 Report Server 请求因 HTTP 状态 400 失败: Bad Request 处理方法 的解决方法
- InternalServerError时 HttpWebRequest 的 GetResponse 方法处理策略
- 全面剖析XMLHttpRequest对象——处理请求
- Advanced Request and Response HTTP Header Viewer
- HTTP/1.1 400 Bad Request 报错的处理办法