//  该类负责发送2G/3G Http请求的数据

#import <Foundation/Foundation.h>

#import "ASIHTTPRequest.h"

#import "ASINetworkQueue.h"

#import "ASIDownloadCache.h"

#import "ASIFormDataRequest.h"

#import <SystemConfiguration/CaptiveNetwork.h>

#import "DeviceInfo.h"

@protocolDataRequestManagerDelegate;

//开关状态

#define openCommd @"FE000011010002FFFF1001FFFF2001FFFF3001FFFF"

#define closeCommd @"FE000011010001FFFF1001FFFF2001FFFF3001FFFF"

#define DataBaseURL  @"http://yun.lierda.com/usvc/"

//对应的操作

typedefenum

{

DataRequestStart = 0,

SecurityCodeRequest, //验证码

ResignRequest, //注册

LoginRequest,  //登陆

AddDeviceRequest,  //添加设备

ControlDeviceRequest,  //控制设备

QueryDeviceRequest,//查询设备

}DataRequestDataType;

@interface DataRequestManager : NSObject<ASIHTTPRequestDelegate>

@property (nonatomic , assign) id<DataRequestManagerDelegate> delegete;

+ (DataRequestManager *)getInstance;

//1.获取验证码请求接口

- (void)postSecurityCodeWithRequest;

//2.注册接口

- (void)resignWithRequest;

//3.登陆接口

- (void)loginWithRequest;

//4.添加设备

- (void)addDeviceWithRequest:(DeviceInfo *)devInfo;

//5.控制设备

- (void)managerDeviceWithRequest:(NSMutableArray *)devInfoArray isOpen:(BOOL)isopen;

//4.查询设备

- (void)queryDeviceWithInfo:(DeviceInfo *)devInfo;

@end

@protocol DataRequestManagerDelegate <NSObject>

@optional

//发送http数据后的回调

-(void)DataRequestManager:(DataRequestManager *)dataManager receiveData:(NSDictionary *)resultDic errorType:(DataRequestDataType)type;

//发送数据失败

-(void)DataRequestManager:(DataRequestManager *)dataManager receiveData:(NSDictionary *)resultDic successType:(DataRequestDataType)type;

@end

//

//  DataRequestManager.m

//  SmartHomeWIFI

//

//  Created by showsoft_004 on 14-2-27.

//  Copyright (c) 2014年 huhuaxiang. All rights reserved.

//

//3G状态获取网络数据

#import "DataRequestManager.h"

#import "SBJson.h"

#import "NetworkTools.h"

#import "UserInfo.h"

#import "UserDataManager.h"

#import "DeviceDataManager.h"

#import "ByteUnit.h"

#define SNKey @"SN"

#define CIDKey @"CID"

#define SIDKey @"SID"

#define captchaPart1Key @"captchaPart1"

#define captchaPart2Key @"captchaPart2"

static DataRequestManager * instance = nil;

@interface DataRequestManager ()

{

ASIHTTPRequest *ordinaryRequest;//基本请求

ASINetworkQueue *requestQueue;

ASIFormDataRequest *requestOfPost;//表单提交

DataRequestDataType currRequestType;

NSMutableDictionary *networkDatas;

UserInfo *regexUserData;

int requestErrorNum;//每次请求的错误数

DeviceInfo *tempDevInfo;

NSMutableArray *controlDeviceArray;

BOOL sendControlDevState;

}

@end

@implementation DataRequestManager

@synthesize delegete;

- (id)init{

self = [super init];

if (self) {

requestQueue = [[ASINetworkQueue alloc] init];

[requestQueue setDelegate:self];

[requestQueue setShouldCancelAllRequestsOnFailure:NO];

[requestQueue setShowAccurateProgress:YES];

if ([requestQueue isSuspended]) {

[requestQueue go];

}

requestErrorNum=0;

networkDatas=[[NSMutableDictionary alloc]init];

}

returnself;

}

- (void)dealloc{

[requestQueue cancelAllOperations];

requestQueue = nil ;

if( ordinaryRequest ){

[ordinaryRequest clearDelegatesAndCancel];

self.delegete = nil;

ordinaryRequest = nil ;

}

if( requestOfPost ){

[requestOfPost clearDelegatesAndCancel];

requestOfPost.delegate = nil;

requestOfPost = nil ;

}

}

+ (DataRequestManager *)getInstance

{

@synchronized(self){

if (instance == nil) {

instance = [[DataRequestManager alloc] init];

}

}

return instance;

}

#pragma mark -- Method

- (NSURL*)generateURL:(NSString*)baseURL params:(NSDictionary*)params {

if (params) {

NSMutableArray* pairs = [NSMutableArray array];

for (NSString* key in params.keyEnumerator) {

NSString* value = [params objectForKey:key];

//please free memory if you use Create, add by hejiang

CFStringRef loc_StringRef=CFURLCreateStringByAddingPercentEscapes(

NULL, /* allocator */

(CFStringRef)value,

NULL, /* charactersToLeaveUnescaped */

(CFStringRef)@"!*'();:@&=+$,/?%#[]",

kCFStringEncodingUTF8);

//NSString* escaped_value = ( NSString *)loc_StringRef;

CFRelease(loc_StringRef);

//escaped_value = nil;//remove warrning escaped_value 作用是什么

[pairs addObject:[NSString stringWithFormat:@"%@=%@", key, value]];

}

NSString* query = [pairs componentsJoinedByString:@"&"];

//        query = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

query = [query stringByAddingPercentEscapesUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];

NSString* url = [NSString stringWithFormat:@"%@?%@", baseURL, query];

NSLog(@"-- url = %@",url);

return [NSURLURLWithString:url];

} else {

return [NSURL URLWithString:baseURL];

}

}

//1.输入验证码

- (void)postSecurityCodeWithRequest

{

//请求参数

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

[dic setObject:[NetworkToolsgetLocalMacAddress] forKey:@"phone"];

[dic setObject:[NSStringstringWithFormat:@"%@@ucot.com",[NetworkToolsgetLocalMacAddress]] forKey:@"email"];

[dic setObject:[NSNumbernumberWithInt:500000] forKey:@"timeout"];

[dic setObject:[NSNumbernumberWithInt:0] forKey:@"SN"];

[dic setObject:[NSNumbernumberWithInt:10031] forKey:@"CID"];

[dic setObject:[NSNumbernumberWithInt:1212611785] forKey:@"SID"];

[dic setObject:@"CaptchaReq"forKey:@"NM"];

NSString *json = [selfchangObjectToJsonString:dic];

NSMutableDictionary   *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:

json , @"debug",

nil];

//    NSString *string = [NSString stringWithFormat:@"%@%@" , DataBaseURL , @"User_login"];

NSURL *url = [self generateURL:DataBaseURL params: params ];

//发送请求

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=SecurityCodeRequest;

}

//2.注册接口

- (void)resignWithRequest

{

//请求参数

int captchaPart1=[[[networkDatasobjectForKey:[NSNumbernumberWithInt:SecurityCodeRequest]]objectForKey:@"captchaPart1"]integerValue];

int captchaPart2=[[[networkDatasobjectForKey:[NSNumbernumberWithInt:SecurityCodeRequest]]objectForKey:@"captchaPart2"]integerValue];

regexUserData=[[UserInfoalloc]init];

regexUserData.userName=[NSStringstringWithFormat:@"%@@ucot.com",[NetworkToolsgetLocalMacAddress]];

regexUserData.displayName=[NSStringstringWithFormat:@"%@%@",@"shenxianjun",[NetworkToolsgetLocalMacAddress]];

regexUserData.passWord=@"123456";

regexUserData.clientID=@"F0002C0004";

regexUserData.clientMAC=[NetworkToolsgetLocalMacAddress];

regexUserData.clientName=[NetworkToolsgetLocalMacAddress];

regexUserData.CID=10201;

regexUserData.SID=1212611785;

regexUserData.SN=0;

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

//    int sn=[[[networkDatas objectForKey:[NSNumber numberWithInt:SecurityCodeRequest]]objectForKey:SNKey]integerValue];

//    int CID=10201;//[[[networkDatas objectForKey:[NSNumber numberWithInt:SecurityCodeRequest]]objectForKey:CIDKey]integerValue];

//    int SID=[[[networkDatas objectForKey:[NSNumber numberWithInt:SecurityCodeRequest]]objectForKey:SIDKey]integerValue];

[dic setObject:[NSNumbernumberWithInt:regexUserData.SN] forKey:SNKey];

[dic setObject:[NSNumbernumberWithInt:regexUserData.CID] forKey:CIDKey];

[dic setObject:[NSNumbernumberWithInt:regexUserData.SID] forKey:SIDKey];

[dic setObject:[NSString stringWithFormat:@"%d%d",captchaPart1,captchaPart2] forKey:@"captcha"];//验证

[dic setObject:regexUserData.clientIDforKey:@"clientId"];

[dic setObject:[NSNumbernumberWithInt:regexUserData.timeout] forKey:@"timeout"];

[dic setObject:@"UserAddReq"forKey:@"NM"];

//userDic

NSMutableDictionary *userDic=[[NSMutableDictionaryalloc]init];

[userDic setObject:regexUserData.displayNameforKey:@"displayName"];

[userDic setObject:regexUserData.userNameforKey:@"userName"];

[userDic setObject:regexUserData.passWordforKey:@"password"];

[userDic setObject:[NetworkTools getLocalMacAddress] forKey:@"phone"];

[userDic setObject:[NSStringstringWithFormat:@"%@@ucot.com",[NetworkToolsgetLocalMacAddress]] forKey:@"email"];

[userDic setObject:[NSStringstringWithFormat:@"%@%@",[NetworkToolsgetLocalMacAddress],@"345676"] forKey:@"idCard"];

[userDic setObject:@"shenzhen"forKey:@"answer"];

[userDic setObject:@"1" forKey:@"questionId"];

[dic setObject:userDic forKey:@"userInfo"];

NSString *json = [selfchangObjectToJsonString:dic];

NSMutableDictionary   *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:

json , @"debug",

nil];

//    NSString *string = [NSString stringWithFormat:@"%@%@" , DataBaseURL , @"User_login"];

NSURL *url = [self generateURL:DataBaseURL  params: params ];

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=ResignRequest;

}

//3.登陆接口

- (void)loginWithRequest

{

regexUserData=[[UserDataManagerinstance]currUserInfo];

if(regexUserData.userName.length<1)//用户没有注册

{

[selfpostSecurityCodeWithRequest];//获取验证码用于注册

return;

}

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

[dic setObject:regexUserData.userNameforKey:@"userName"];

[dic setObject:regexUserData.passWordforKey:@"password"];

[dic setObject:regexUserData.clientIDforKey:@"clientId"];

[dic setObject:regexUserData.clientNameforKey:@"clientName"];

[dic setObject:regexUserData.clientMACforKey:@"mac"];

[dic setObject:[NSNumbernumberWithInt:regexUserData.timeout] forKey:@"timeout"];

[dic setObject:regexUserData.clientMACforKey:@"mac"];

[dic setObject:[NSNumbernumberWithInt:10000] forKey:@"agingTime"];

[dic setObject:[NSNumbernumberWithInt:regexUserData.SN] forKey:@"SN"];

[dic setObject:[NSNumbernumberWithInt:10011] forKey:@"CID"];

[dic setObject:[NSNumbernumberWithInt:0] forKey:@"SID"];

[dic setObject:@"loginReq"forKey:@"NM"];

NSString *json = [selfchangObjectToJsonString:dic];

NSMutableDictionary   *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:

json , @"debug",

nil];

//    NSString *string = [NSString stringWithFormat:@"%@%@" , DataBaseURL , @"User_login"];

NSURL *url = [self generateURL:DataBaseURL params: params ];

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=LoginRequest;

}

//4.添加设备

-(void)addDeviceWithRequest:(DeviceInfo *)devInfo

{

tempDevInfo=devInfo;

if(!tempDevInfo)return;

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

[dic setObject:[@"ACCF23123456"uppercaseString] forKey:@"mac"];

//    [dic setObject:[devInfo.mac uppercaseString] forKey:@"mac"];

[dic setObject:delaultKeyforKey:@"localkey"];

[dic setObject:devInfo.deviceName forKey:@"name"];

[dic setObject:[NSNumbernumberWithBool:YES] forKey:@"needRemoteControl"];

[dic setObject:@"20140101"forKey:@"serialNo"];

[dic setObject:[NSNumbernumberWithInt:1] forKey:@"factoryId"];

[dic setObject:[NSNumbernumberWithInt:1] forKey:@"type"];

[dic setObject:@"1.0.0"forKey:@"hardwareVer"];

[dic setObject:@"1.0.0"forKey:@"softwareVer"];

[dic setObject:delaultKeyforKey:@"tempKey"];

[dic setObject:[NSNumbernumberWithInt:125.313643243] forKey:@"gpsLat"];

[dic setObject:[NSNumbernumberWithInt:43.89833761] forKey:@"gpsLat"];

[dic setObject:@"CN"forKey:@"country"];

[dic setObject:@"SiChuan"forKey:@"state"];

[dic setObject:@"shenzhen"forKey:@"city"];

[dic setObject:@"None"forKey:@"district"];

[dic setObject:@"mylight.jpg"forKey:@"image"];

NSMutableDictionary *dic2=[[NSMutableDictionaryalloc]init];

[dic2 setObject:dic forKey:@"deviceInfo"];

[dic2 setObject:[NSNumbernumberWithInt:regexUserData.timeout] forKey:@"timeout"];

[dic2 setObject:[NSNumbernumberWithInt:0] forKey:@"SN"];

[dic2 setObject:[NSNumbernumberWithInt:30011] forKey:@"CID"];

[dic2 setObject:[NSNumbernumberWithInt:regexUserData.SID] forKey:@"SID"];

[dic2 setObject:@"DeviceAddReq"forKey:@"NM"];

NSString *json = [selfchangObjectToJsonString:dic2];

NSMutableDictionary   *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:

json , @"debug",

nil];

//    NSString *string = [NSString stringWithFormat:@"%@%@" , DataBaseURL , @"User_login"];

NSURL *url = [self generateURL:DataBaseURL params: params ];

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=AddDeviceRequest;

}

//5.控制设备

- (void)managerDeviceWithRequest:(NSMutableArray *)devInfoArray isOpen:(BOOL)isopen

{

controlDeviceArray=devInfoArray;

sendControlDevState=isopen;

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

for (DeviceInfo *info in devInfoArray) {

//        [dic setObject:isopen?openCommd:closeCommd  forKey:[@"ACCF23123456" uppercaseString]];

[dic setObject:isopen?openCommd:closeCommd  forKey:[info.mac uppercaseString]];

}

NSMutableDictionary *dic2=[[NSMutableDictionaryalloc]init];

[dic2 setObject:dic forKey:@"input"];

[dic2 setObject:[NSNumbernumberWithInt:regexUserData.timeout] forKey:@"timeout"];

[dic2 setObject:[NSNumbernumberWithInt:0] forKey:@"SN"];

[dic2 setObject:[NSNumbernumberWithInt:20021] forKey:@"CID"];

[dic2 setObject:[NSNumbernumberWithInt:regexUserData.SID] forKey:@"SID"];

[dic2 setObject:@"DeviceGetRep"forKey:@"NM"];

NSString *json = [selfchangObjectToJsonString:dic2];

NSMutableDictionary   *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:

json , @"debug",

nil];

//    NSString *string = [NSString stringWithFormat:@"%@%@" , DataBaseURL , @"User_login"];

NSURL *url = [self generateURL:DataBaseURL params: params ];

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=ControlDeviceRequest;

}

//4.查询设备

- (void)queryDeviceWithInfo:(DeviceInfo *)devInfo

{

tempDevInfo=devInfo;

if(!tempDevInfo)return;

//字典一

NSMutableDictionary *dic1 = [[NSMutableDictionaryalloc] init];

[dic1 setObject:@"FD00000102"forKey:@"ACCF23123456"];

//    [dic1 setObject:@"FD00000102" forKey:[devInfo.mac uppercaseString]];

//字典二

NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];

[dic setObject:dic1 forKey:@"input"];

[dic setObject:[NSNumbernumberWithInt:regexUserData.timeout] forKey:@"timeout"];

[dic setObject:[NSNumbernumberWithInt:0] forKey:@"SN"];

[dic setObject:[NSNumbernumberWithInt:20021] forKey:@"CID"];

[dic setObject:[NSNumbernumberWithInt:regexUserData.SID] forKey:@"SID"];

[dic setObject:@"DeviceSetReq"forKey:@"NM"];

NSString *json = [selfchangObjectToJsonString:dic];

NSMutableDictionary *params = [NSMutableDictionarydictionaryWithObjectsAndKeys:json,@"debug", nil];

NSURL *url = [self generateURL:DataBaseURL params:params];

ordinaryRequest = [ASIHTTPRequestrequestWithURL:url];

[ordinaryRequestsetDelegate:self];

ordinaryRequest.timeOutSeconds = 20;

ordinaryRequest.numberOfTimesToRetryOnTimeout = 20;

[ordinaryRequestsetDefaultResponseEncoding:NSUTF8StringEncoding];

[ordinaryRequeststartAsynchronous];

currRequestType=QueryDeviceRequest;

}

//将对象转换成json字符串

- (NSString *)changObjectToJsonString: (id)object{

NSData *tempData = [NSJSONSerialization dataWithJSONObject:object options:0 error:nil];

NSString *jsonString = [[NSStringalloc] initWithData:tempData encoding:NSUTF8StringEncoding];

return jsonString;

}

- (NSString *)URLEncodedString:(NSString *)string

{

NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

(CFStringRef)string,

NULL,

CFSTR("!*'();:@&=+$,/?%#[]"),

kCFStringEncodingUTF8));

return result;

}

#pragma mark Request

- (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data

{

SBJsonParser *json=[[SBJsonParseralloc]init];

NSDictionary *dic=[json objectWithData:data];

if(!dic)

{

requestErrorNum++;

if(requestErrorNum==4)//超过3次请求失败

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

[delegeteDataRequestManager:selfreceiveData:nilerrorType:currRequestType];

return;

}

}else

requestErrorNum=0;

if(currRequestType==SecurityCodeRequest)

{

if([[dic objectForKey:@"result"]integerValue]!=1)//请求失败则重新请求

{

[selfpostSecurityCodeWithRequest];

return;

}

[networkDatassetObject:dic forKey:[NSNumbernumberWithInt:SecurityCodeRequest]];

//注册用户

[selfresignWithRequest];

}

elseif(currRequestType==ResignRequest)//注册

{

if(!dic)//失败

{

[selfresignWithRequest];

return;

}

int result=[[dic objectForKey:@"result"]integerValue];

if(result==1)//成功

{

[[UserDataManagerinstance]insertOrUpdateUserData:regexUserData];

[self loginWithRequest];

}

else if(result==-104)//已经存在

{

[[UserDataManagerinstance]insertOrUpdateUserData:regexUserData];

[self loginWithRequest];//登录

}else if(result==-114)//以成功的方式处理

{

[[UserDataManagerinstance]insertOrUpdateUserData:regexUserData];

[self loginWithRequest];//登录

}

else

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

[delegeteDataRequestManager:selfreceiveData:dic errorType:currRequestType];

}

}

elseif(currRequestType==LoginRequest)//登录

{

if(!dic)

{

[self loginWithRequest];

return;

}

int result=[[dic objectForKey:@"result"]integerValue];

if(result==1)//成功

{

regexUserData.userID=[[dic objectForKey:@"userId"]integerValue];

regexUserData.SID=[[dic objectForKey:@"SID"]integerValue];

if(delegete&&[delegete respondsToSelector:@selector(DataRequestManager:receiveData:successType:)])

[delegeteDataRequestManager:selfreceiveData:dic successType:currRequestType];

}else

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

[delegeteDataRequestManager:selfreceiveData:dic errorType:currRequestType];

}

}

elseif(currRequestType==AddDeviceRequest)

{

if(!dic)

{

[selfaddDeviceWithRequest:tempDevInfo];

return;

}

int result=[[dic objectForKey:@"result"]integerValue];

switch (result) {

case -202://设备已经添加

case -15://设备在其他服务器

case 1://成功

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:successType:)])

[delegeteDataRequestManager:selfreceiveData:dic successType:currRequestType];

//                [self managerDeviceWithRequest:tempDevInfo isOpen:YES];

}

break;

default:

{

//不管是否添加成功,都执行

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:successType:)])

[delegeteDataRequestManager:selfreceiveData:dic successType:currRequestType];

//                if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

//                    [delegete DataRequestManager:self receiveData:dic errorType:currRequestType];

}

break;

}

}

elseif(currRequestType==ControlDeviceRequest)

{

if(!dic)

{

[selfmanagerDeviceWithRequest:controlDeviceArrayisOpen:sendControlDevState];

return;

}

int result=[[dic objectForKey:@"result"]integerValue];

if(result==1)//操作成功

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:successType:)])

[delegeteDataRequestManager:selfreceiveData:dic successType:currRequestType];

}else

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

[delegeteDataRequestManager:selfreceiveData:dic errorType:currRequestType];

}

}elseif(currRequestType==QueryDeviceRequest)

{

if(!dic)//如果返回失败则再次发送请求

{

[selfqueryDeviceWithInfo:tempDevInfo];

return;

}

int result=[[dic objectForKey:@"result"]integerValue];

if(result==1)//操作成功

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:successType:)])

[delegeteDataRequestManager:selfreceiveData:dic successType:currRequestType];

}else

{

if([delegete respondsToSelector:@selector(DataRequestManager:receiveData:errorType:)])

[delegeteDataRequestManager:selfreceiveData:dic errorType:currRequestType];

}

}

}

//清理普通请求

-(void)clearOrdinaryRequest{

//清除之前,先清除队列之中的请求

//    [self clearRequestInQueueWithArray];

if (ordinaryRequest) {

[ordinaryRequestclearDelegatesAndCancel];

ordinaryRequest=nil;

}

}

@end

3G数据请求的更多相关文章

  1. Ajax --- 数据请求

    下面主要介绍(JS原生)数据请求的主要步骤: Ajax 数据请求步骤: 1.创建XMLHttpRequest对象 2.准备数据发送 3.执行发送 4.指定回掉函数 第一步:创建XMLHttpReque ...

  2. 携带cookie进行数据请求

    前端进行数据请求有:普通的ajax(json)请求,jsop跨域请求,cors跨域请求,fetch请求...PC端这些请求方式中,普通的ajax(json)请求和jsop跨域请求是默认携带cookie ...

  3. XML 数据请求与JSON 数据请求

    (1)XML 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 和 AFXMLParserResponseSerializer,另外结合第三方框架 XMLD ...

  4. 使用 AFNetworking 进行 XML 和 JSON 数据请求

    (1)XML 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 和 AFXMLParserResponseSerializer,另外结合第三方框架 XMLD ...

  5. iOS - NetRequest 网络数据请求

    1.网络请求 1.1 网络通讯三要素 1.IP 地址(主机名): 网络中设备的唯一标示.不易记忆,可以用主机名(域名). 1) IP V4: 0~255.0~255.0~255.0~255 ,共有 2 ...

  6. iOS开发——网络Swift篇&NSURL进行数据请求(POST与GET)

    NSURL进行数据请求(POST与GET)   使用Swift进行iOS开发时,不可避免的要进行远程的数据获取和提交. 其数据请求的方式既可能是POST也可能是GET.同不管是POST还是GET又可以 ...

  7. ASP.NET问题处理---“数据请求超时错误“”

    数据请求超时,一般有2中解决方式: 1.页面AJAX处理数据时延长时间: 2.后台数据库连接取数据时延长时间. 由于我的后台数据库连接取数据为循环读取数据,所以不存在超时问题,这里具体说说如何修改AJ ...

  8. VueJS搭建简单后台管理系统框架 (二) 模拟Ajax数据请求

    开发过程中,免不了需要前台与后台的交互,大部分的交互都是通过Ajax请求来完成,在服务端未完成开发时,前端需要有一个可以模拟Ajax请求的服务器. 在NodeJs环境下,通过配置express可访问的 ...

  9. 微信小程序数据请求方法wx.request小测试

    微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...

随机推荐

  1. 深入了解 Scala 并发性

    2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的 ...

  2. Bestcoder Round 47 && 48

    1.Senior's Array(hdu 5280) 题目大意:给出大小为N的数组和P,求将数组中的某个元素替换为P后的最大连续子段和.N<=1000 题解: 1.送分题,比赛的时候只想到枚举替 ...

  3. Bootstrap <基础十八>面包屑导航(Breadcrumbs)

    面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式.以博客为例,面包屑导航可以显示发布日期.类别或标签.它们表示当前页面在导航层次结构内的位置. Bootstrap 中的面包屑导航( ...

  4. JQuery随笔

    web请求中,外部样式文件的加载不影响页面,js的加载会影响页面的加载速度 window.onlond 页面所有元素加载完后执行包含js,css等加载完毕 $(function(){}) 页面中DOM ...

  5. 为Informix数据库开启事务

    1.首先在Informix数据库安装根目录的etc文件夹下找到名为ONCONFIG.on_xxxx的配置文件: 2.打开ONCONFIG.on_xxxx文件,在第409行的位置找到TAPEDEV \\ ...

  6. 【译】Android 6.0 Changes (机翻加轻微人工校对)

    Android 6.0 Changes In this document Runtime Permissions Doze and App Standby Apache HTTP Client Rem ...

  7. 在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案

    在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案 之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放ja ...

  8. NAT123内网映射端口

    在无内网路由管理员权限的情况下,需要将内网web应用暴露到公网访问,此时需要用到花生壳或者nat123(两个应用都不是免费的,其中花生壳可以8元认证,以后免费使用,nat123按天收费) 花生壳 ht ...

  9. Android之如何使用JUnit进行单元测试

    转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...

  10. Dapper学习笔记(5)-存储过程

    一.无参存储过程 第一步:创建一个不带参数的存储过程,代码如下: CREATE PROCEDURE [dbo].[QueryRoleNoParms] AS BEGIN SELECT * FROM T_ ...