#import <Foundation/Foundation.h>
#import "ASIFormDataRequest.h" @protocol NetWorkdelegate;
@interface JSNetWork : NSObject<ASIHTTPRequestDelegate>
+(JSNetWork *)shareNetWork; -(void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate;
@end @protocol NetWorkdelegate <NSObject>
-(void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback;
@end @implementation JSNetWork +(JSNetWork *)shareNetWork{
static dispatch_once_t onceToken;
static JSNetWork *netWork=nil;
dispatch_once(&onceToken, ^{
netWork=[[JSNetWork alloc] init];
});
return netWork;
} #pragma mark -request
-(void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate{
if (![self Isconnect]) {
UIAlertView *alertview=[[UIAlertView alloc] initWithTitle:nil message:@"not work" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
[alertview show];
[alertview release];
return;
}
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:[NSURL URLWithString:body]];
request.timeOutSeconds=;
request.delegate=self;
request.requestMethod=@"POST";
NSArray *Bodyarry=[PostBody componentsSeparatedByString:@"&"];
for(NSString *tmp in Bodyarry){
NSArray *temparrary=[tmp componentsSeparatedByString:@"="];
[request setPostValue:temparrary[] forKey:temparrary[]];
}
NSString *cid=[NSString stringWithFormat:@"%zi",connectid];
NSDictionary *dic=@{@"connectid":cid,@"delegate":delegate};
[request setUserInfo:dic];
[request startAsynchronous]; } -(void)requestFinished:(ASIHTTPRequest *)request{
NSDictionary *userinfo=request.userInfo;
int connectid=[userinfo[@"connectid"] intValue];
id<NetWorkdelegate> delegate=userinfo[@"delegate"];
NSString *str=[request responseString];
[delegate NetWorkwithConnectId:connectid backstring:str];
} -(void)requestFailed:(ASIHTTPRequest *)request{ } -(BOOL)Isconnect{
BOOL iscon=NO;
Reachability *r=[Reachability reachabilityWithHostName:@"www.baidu.com"];
switch ([r currentReachabilityStatus]) {
case NotReachable:
NSLog(@"not network");
iscon=NO;
break;
case ReachableViaWiFi:
NSLog(@"wifi");
iscon=YES;
break;
case ReachableViaWWAN:
NSLog(@"3g");
iscon=YES;
break;
default:
break;
}
return iscon;
} @end
- (void)viewDidLoad
{
[super viewDidLoad];
[[JSNetWork shareNetWork] JsNetWordWithConnectId: Body:@"http://www.baidu.com" PostBody:nil Delegate:self];
// Do any additional setup after loading the view, typically from a nib.
NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
path=[path stringByAppendingPathComponent:@"1.plist"];
NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
if(str.length>)
[self NetWorkwithConnectId: backstring:str];
} -(void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback{
self.txt.text=aback;
[self Save:aback];
} -(void)Save:(NSString *)str{
NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
path=[path stringByAppendingPathComponent:@"1.plist"];
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
} - (void)dealloc {
[_txt release];
[super dealloc];
}

ios中网络请求缓存的更多相关文章

  1. ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)

    当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...

  2. iOS开发网络请求——大文件的多线程断点下载

    iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大 ...

  3. IOS中http请求使用cookie

    http://rainbird.blog.51cto.com/211214/805173 IOS中http请求使用cookie 2012-03-13 23:04:30 标签:http 记录 龙的传人  ...

  4. 聊聊iOS中网络编程长连接的那些事

    1.长连接在iOS开发中的应用 常见的短连接应用场景:一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection.NSURLSession或者是AFNetworking ...

  5. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

  6. iOS网络——NSURLCache设置网络请求缓存

    今天在看HTTP协议,看到了response头中的cache-control,于是就深入的研究了一下.发现了iOS中一个一直被我忽略的类——NSURLCache类. NSURLCache NSURLC ...

  7. iOS - AFNetworking 网络请求

    前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访 ...

  8. iOS - ASIHTTPRequest 网络请求

    前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 AP ...

  9. iOS - NSURLSession 网络请求

    前言 NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) @interface NSURLSession : NSObject @available(iOS ...

随机推荐

  1. [leetcode]Reverse Linked List II @ Python

    原题地址:https://oj.leetcode.com/problems/reverse-linked-list-ii/ 题意: Reverse a linked list from positio ...

  2. [leetcode]Search a 2D Matrix @ Python

    原题地址:https://oj.leetcode.com/problems/search-a-2d-matrix/ 题意: Write an efficient algorithm that sear ...

  3. win10安装jdk以及配置环境变量

    本人使用的jdk版本:jdk-8u171-windows-x64.exe, 1.安装jdk: 双击 jdk-8u171-windows-x64.exe ,然后就是简单的安装流程,安装文件位置建议保持默 ...

  4. 实战HMM-Viterbi角色标注地名识别

    http://www.hankcs.com/nlp/ner/place-names-to-identify-actual-hmm-viterbi-role-labeling.html 命名实体识别(N ...

  5. Thinkphp5 使用odbc连接到sqlserver

    在PHP中访问mssql有两个方式 1.安装相应的驱动,如sqlsrv 2.直接使用PHP自带的ODBC驱动(不需要安装)   本文直接使用自带的ODBC驱动 在使用前请确定PHP开启了php_pdo ...

  6. tail -f 然后grep,处理缓存的问题

    学习了:http://www.quwenqing.com/read-134.html 对日志记录做多次grep过滤输出,格式如下: tail -f log | grep xxx | grep yyy ...

  7. Docker创建MySQL容器环境两部曲

    1:下载MySQL镜像 需要执行以下命令,确保主机或者VM联网,从官网下载mysql的最新镜像(镜像版本以官网为主) docker  pull  mysql 下载成功后执行 docker image ...

  8. jquery easyui tree异步加载子节点

    easyui中的树可以从标记中建立,也可以通过指定一个URL属性读取数据建立.如果想建立一棵异步树,需要为每个节点指定一个id属性值,这样在加载数据时会自动向后台传递id参数. <ul id=& ...

  9. 浅谈压缩感知(十五):感知矩阵之spark常数

    在压缩感知中,有一些用来评价感知矩阵(非测量矩阵)的指标,如常见的RIP等,除了RIP之外,spark常数也能够用来衡量能否成为合适的感知矩阵. 0.相关概念与符号 1.零空间条件NULL Space ...

  10. 算法基础:删除字符串中出现次数最少的字符(Golang实现)

    描写叙述: 实现删除字符串中出现次数最少的字符.若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串. 字符串中其他字符保持原来的顺序. 输入: 字符串仅仅包括小写英文字母, 不考虑非法输入, ...