ios 网络请求数据封装类
来源:互联网 发布:为什么会有网络诈骗 编辑:程序博客网 时间:2024/06/04 18:02
////////////////////////////////////////////////////////////////
// 请求基类
////////////////////////////////////////////////////////////////
#import <Foundation/Foundation.h>
#import "ASIFormDataRequest.h"
@interface CKRequestModel :NSObject
{
ASIFormDataRequest *_request;
NSDictionary *_jsonDict;
}
// 开始请求, 供派生类调用
- (void)startRequestWithStrUrl:(NSString *)strUrl
postKeysAndValues:(NSDictionary *)dict;
// 取消请求, 供UI调用
- (void)cancelRequest;
// 成功回调, 供派生类重载
- (void)onRequestDidFinish:(ASIHTTPRequest *)request;
// 失败回调, 供派生类重载
- (void)onRequestDidFail:(ASIHTTPRequest *)request;
@end
#import "CKRequestModel.h"
@implementation CKRequestModel
- (void)startRequestWithStrUrl:(NSString *)strUrl
postKeysAndValues:(NSDictionary *)dict
{
_request = [[ASIFormDataRequestalloc] initWithURL:[NSURLURLWithString:strUrl]];
_request.delegate =self;
/*
如果要设置global的timeout机制,例如自定义的计时器不好用的话,就是用:
_request.timeOutSeconds = 10;
回调检查:
- (void)requestFailed:(ASIHTTPRequest *)request {
NSLog(@"Error: %@",[[request error] localizedDescription]);
}
*/
[_requestsetDidFinishSelector:@selector(onRequestDidFinish:)];
[_requestsetDidFailSelector:@selector(onRequestDidFail:)];
for (NSString *keyin dict)
{
if([dict[key]length]>0)
[_requestaddPostValue:dict[key] forKey:key];
}
[_requeststartAsynchronous];
NSLog(@"===<HTTP>开始===:%@",_request.url);
}
- (void)onRequestDidFinish:(ASIHTTPRequest *)request
{
NSString *str = [NSStringstringWithCString:[[request responseData]bytes] encoding:NSUTF8StringEncoding ];
NSLog(@"===<HTTP>成功,收到数据===:%@", str );
NSString *response = [request responseString];
NSString *string1 = [responsestringByReplacingOccurrencesOfString:@"\r"withString:@""];
NSString *string2 = [string1stringByReplacingOccurrencesOfString:@"\n"withString:@""];
NSString *string3 = [string2stringByReplacingOccurrencesOfString:@" "withString:@""];
NSData *data = [string3dataUsingEncoding:NSUTF8StringEncoding];
_jsonDict = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingMutableLeaveserror:nil];
#ifdef LOG_ALL_RECEIVED_DATA
NSLog(@"===<HTTP>JSON解析后===:%@",_jsonDict);
#endif
}
- (void)onRequestDidFail:(ASIHTTPRequest *)request
{
NSLog(@"===<HTTP>失败===:%@",_request.url);
UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"网络请求失败" delegate:nilcancelButtonTitle:@"确定" otherButtonTitles:nil,nil];
[alertshow];
}
- (void)cancelRequest
{
[_requestclearDelegatesAndCancel];
}
@end
- ios 网络请求数据封装类
- iOS 网络请求类封装
- iOS封装网络请求
- ios中封装网络请求类
- ios中封装网络请求类
- ios中封装网络请求类
- ios中封装网络请求类
- iOS 数据请求类AFNetworking 简单封装
- iOS网络请求简单封装
- iOS 封装网络请求任务
- IOS 网络请求框架封装
- iOS 原生网络请求封装
- 网络请求数据工具封装
- iOS网络数据请求
- iOS网络数据请求
- iOS网络数据请求
- 封装网络请求 - iOS网络篇
- iOS 网络请求 与 网络封装
- 中文URL处理
- 《正确地做事与做正确的事同样重要》
- 前端性能优化:网络存储的静态缓存和非必要内容优化 Web Storage
- Oracle 游标使用全解
- java socket 编程
- ios 网络请求数据封装类
- 网络安全领域实验室(更新中...)
- 关于iOS uiwebview 禁止弹出复制和粘贴功能
- 深入理解linux内存管理之 页表管理
- p2p的UDP打洞原理
- makefile 的执行顺序
- 开源 免费 java CMS - FreeCMS1.4-信息管理
- iOS面试题(转自网络)
- db2 "with ur"