文章标题
来源:互联网 发布:mac的强制退出 编辑:程序博客网 时间:2024/05/16 18:14
import “JSNetWork.h”
//asiHttpRequest
import “ASIFormDataRequest.h”
//xml 的解析
import “UseXmlParser.h”
//判断是否联网
import “Reachability.h”
//sbJson,判断json的解析
import “JSON.h”
@implementation JSNetWork
//创建一个单例
+(JSNetWork*)shareNetWork{
static JSNetWork *network = NULL;
static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{ network = [[self alloc] init];});return network;
}
-(NSString*)JiangSuApiCacheFileName:(NSString*)fileName{
NSString * cacheFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];cacheFolder = [cacheFolder stringByAppendingPathComponent:@"JiangSu"];NSFileManager * fmgr = [NSFileManager defaultManager];if (![fmgr fileExistsAtPath:cacheFolder]){ NSError * error; [fmgr createDirectoryAtPath:cacheFolder withIntermediateDirectories:YES attributes:nil error:&error];}cacheFolder = [cacheFolder stringByAppendingPathComponent:fileName];return cacheFolder;
}
-(NSDictionary*)getURLFromPlistWithKey:(NSString*)plKey{
NSString *path = [[NSBundle mainBundle] pathForResource:@”JiangSuURL” ofType:@”plist”];
NSDictionary *urlDic = [NSDictionary dictionaryWithContentsOfFile:path];
return ASDynamicCast(NSDictionary, [urlDic valueForKey:plKey]);
}
//网络请求方式–因为是单例所有传递的值要不同 必须加connectId
-(void)JSNetWorkWith:(int)connectID Body:(NSString*)bodyString PostBody:(NSString*)postBody Delegate:(id)aDelegate{
//判断是否联网
if (![self isConnectNetWork]) {
UIAlertView *myalert = [[UIAlertView alloc] initWithTitle:nil message:@”请连接网络后再使用” delegate:self cancelButtonTitle:@”确定” otherButtonTitles:nil];
myalert.tag = 0x9999;
[myalert show];
[myalert release];
if (aDelegate && [aDelegate respondsToSelector:@selector(NetWorkBackConnectID:BackString:WithNetState:)]) {
[aDelegate NetWorkBackConnectID:connectID BackString:nil WithNetState:0];
}
return; }if ([bodyString hasPrefix:@"http"] == NO) { bodyString = [NSString stringWithFormat:@"%@/%@",HTTPURLPREFIX,bodyString]; }ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:bodyString]];[request setDelegate:self];request.timeOutSeconds = 20;[request setRequestMethod:@"POST"];[request addRequestHeader:@"Content-Type" value:@"application/xml;charset=UTF-8;"];NSArray *aa = [postBody componentsSeparatedByString:@"&"];for (NSString *str in aa) { NSArray *bb = [str componentsSeparatedByString:@"="]; [request setPostValue:[bb objectAtIndex:1] forKey:[bb objectAtIndex:0]];}//传递参数[request setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"%d",connectID],@"tag",aDelegate,@"target", nil]];[request startAsynchronous];
}
//请求成功
- (void)requestFinished:(ASIHTTPRequest *)request{
NSDictionary *userInfo = [request userInfo];id delegate = [userInfo objectForKey:@"target"];int conTag = [[userInfo objectForKey:@"tag"] intValue];NSLog(@"\n成功 地址:%@ \n ConnectId = %d 结果 = %@",[[request url] absoluteString],conTag,[request responseString]);NSString *responseString = [request responseString];
// if ([responseString hasPrefix:@”
pragma unused(delegate)
int conTag = [[userInfo objectForKey:@"tag"] intValue];NSLog(@"\n失败 地址:%@ \n ConnectId = %d 结果 = %@",[[request url] absoluteString],conTag,[request responseString]);if (delegate && [delegate respondsToSelector:@selector(NetWorkBackConnectID:BackDic:WithNetState:)]) { [delegate NetWorkBackConnectID:conTag BackDic:nil WithNetState:0];}if (delegate && [delegate respondsToSelector:@selector(NetWorkBackConnectID:BackString:WithNetState:)]) { [delegate NetWorkBackConnectID:conTag BackString:@"" WithNetState:0];}UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"" message:@"数据请求失败" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];[av show];[av release];
}
// 判断是否联网
-(BOOL)isConnectNetWork{
BOOL isExistenceNetwork = YES;
Reachability *r = [Reachability reachabilityWithHostName:@”www.baidu.com”];
switch ([r currentReachabilityStatus]) {
case NotReachable:
isExistenceNetwork=NO;
NSLog(@”没有网络”);
break;
case ReachableViaWWAN:
isExistenceNetwork=YES;
NSLog(@”正在使用3G网络”);
break;
case ReachableViaWiFi:
isExistenceNetwork=YES;
NSLog(@”正在使用wifi网络”);
break;
}
return isExistenceNetwork;
}
//弹出WiFi
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (alertView.tag == 0x9999) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”prefs:root=WIFI”]];
// exit(0);
}
}
@end
复制代码
复制代码
pragma mark -请求信息
-(void)RentNewsRequest{
NSString *ss = [NSString stringWithFormat:@”szzssw/taxCommon.action?code=1001&pagecode=%d&menucode=0300000000”,NewsView.pageCode == 0 ? 1 : NewsView.pageCode];
[[JSNetWork shareNetWork] JSNetWorkWith:100 Body:ss PostBody:nil Delegate:self];
//先充缓存里面去读取
NSString *cachestr=[self readApiCacheFileName:@”地税新闻列表.txt”];
//只是对上拉信息,读取缓存
if(cachestr.length>0 &&NewsView.pageCode==1){
[self NetWorkBackConnectID:100 BackString:cachestr WithNetState:0];
}
}
pragma mark -数据完成信息
(void)NetWorkBackConnectID:(int)connectID BackString:(NSString *)aBackString WithNetState:(int)netState{
NewsView.aTable.pullTableIsRefreshing=YES;
NewsView.aTable.pullTableIsLoadingMore=YES;
NewsView.aTable.pullTableIsRefreshing=NO;
NewsView.aTable.pullTableIsLoadingMore=NO;
if(connectID==100){NSDictionary *jsonDic=ASDynamicCast(NSDictionary, [aBackString JSONValue]);//根据请求的内容判断请求是否成功if (![[jsonDic getStringByKey:@"dealcode"] isEqualToString:@"0000"]) { NSLog(@"请求失败-->%@",[jsonDic getStringByKey:@"dealmsg"]); return;}//如果是上拉,进行缓存
if (NewsView.pageCode==1) {
[self saveApiCacheFileName:@”地税新闻列表.txt” textContent:aBackString Append:NO];
}
if (NewsView.dataArray.count>0 &&NewsView.pageCode==1) {
[NewsView.dataArray removeAllObjects];//向下拉只显示20条,下拉只显示就叠加
}NSArray *contentArray=ASDynamicCast(NSDictionary, [aBackString JSONValue])[@”content”];
[NewsView.dataArray addObjectsFromArray:contentArray];
[NewsView.aTable reloadData];}
}
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 反射访问属性或方法时将Accessible设置为true
- 移动目标检测(帧间差分法)
- 安装Windows下 CDH5开发环境
- URAL 1206 Sum of Digits of the Sum of Numbers
- 编写程序,将ax中的0变1,1变0,最后输出ax中1的个数题目:编写程序,将ax中的1变成0,0变成1,最后输出ax中1的个数; 程序代码如下所示:
- 文章标题
- HDU1256
- C#中多重继承
- URAL 1207 Median on the Plane
- Python一些函数的笔记
- UITableViewCell高亮时,其子视图中有高亮的对象也高亮了
- LeetCode---Add Binary
- 分支结构
- HDU5536 chip factory 【01字典树】