Jelajahi Sumber

修复底层网络访问接口在没有网络时,空指针报错的问题。
修复底层网络访问接口线程调度错误的问题。
新增用于下载的通用底层网络接口。
Apex Mobile增加新的文件下载接口,替换旧接口,这个还未测试;
去掉Apex Mobile 部分不再使用的类

Ray Zhang 6 tahun lalu
induk
melakukan
e80b41a990

+ 2 - 2
Apex Mobile/Apex Mobile.xcodeproj/project.pbxproj

@@ -1051,6 +1051,8 @@
 		719A51AA18C5A60C0080C075 /* unused */ = {
 			isa = PBXGroup;
 			children = (
+				71B799992021B22D00F8685E /* AMResultViewController.h */,
+				71B7999A2021B22D00F8685E /* AMResultViewController.m */,
 				719A51A318C5A4AF0080C075 /* SimpleGrid.h */,
 				719A51A418C5A4AF0080C075 /* SimpleGrid.m */,
 				719EF8F818BB839F00EFFF5F /* ApexMobileFirstViewController.h */,
@@ -1355,8 +1357,6 @@
 				426F39812033D0930025C568 /* ResultCell.m */,
 				71E0D1D42022AB7E009A08EB /* ResultViewController.h */,
 				71E0D1D32022AB7E009A08EB /* ResultViewController.m */,
-				71B799992021B22D00F8685E /* AMResultViewController.h */,
-				71B7999A2021B22D00F8685E /* AMResultViewController.m */,
 				4235C30220229F7200A99D04 /* Result.xib */,
 				4235C3042022A60A00A99D04 /* ResultCell.xib */,
 				71FCDE0520492B5E00B0746B /* MyQLPreviewController.h */,

+ 1 - 1
Apex Mobile/Apex Mobile/DetailTabBarController.m

@@ -7,7 +7,7 @@
 //
  
 #import "DetailTabBarController.h"
-#import "AMResultViewController.h"
+//#import "AMResultViewController.h"
 #import "LPShareActivity.h"
 #import "RAUtils.h"
 #import "DetailShareItemProvider.h"

+ 1 - 1
Apex Mobile/Apex Mobile/HistoryViewController.m

@@ -7,7 +7,7 @@
 //
 
 #import "HistoryViewController.h"
-#import "AMResultViewController.h"
+//#import "AMResultViewController.h"
 #import "ApexResultViewController.h"
 
 @interface HistoryViewController ()

+ 1 - 1
Apex Mobile/Apex Mobile/OrderHistoryViewController.m

@@ -12,7 +12,7 @@
 #import "JLRefreshFooter.h"
 #import "ApexMobileDB.h"
 #import "DetailTabBarController.h"
-#import "AMResultViewController.h"
+//#import "AMResultViewController.h"
 #import "RAUtils.h"
 
 

+ 6 - 0
Apex Mobile/Apex Mobile/RANetwork.m

@@ -2642,4 +2642,10 @@
 //
 //    return resultDic;
 }
+
++ (void)request_download:(NSMutableDictionary *)params url:(NSString *)url toCachePath:(NSString *)path progressHandler:(progressHandler)progressHandler completionHandler:(resultHandler)result {
+//    params = [self prepare_addtional_params:params];
+    [NetworkUtils request_file:url parameters:params err_record_url:nil completionHandler:result];
+    
+}
 @end

+ 63 - 35
Apex Mobile/Apex Mobile/Result/Presenter/ApexResultPresenter.m

@@ -378,43 +378,71 @@ static const NSInteger detal = 20;
         [self.delegate onStartLoading];
     }
     
-    dispatch_async(dispatch_get_global_queue(0, 0), ^{
-        
-        NSString *cacheDir = NSTemporaryDirectory();
-        
-        if (![[NSFileManager defaultManager] fileExistsAtPath:cacheDir]) {
-            [[NSFileManager defaultManager] createDirectoryAtPath:cacheDir withIntermediateDirectories:NO attributes:nil error:nil];
-        }
-        
-        [RANetwork download_file:[params mutableCopy] url:url toCachePath:cacheDir progressHandler:^(NSURLSessionTask *task, double progress) {
-            
-            DebugLog(@"download progress %f",progress);
-        } completionHandler:^(NSMutableDictionary *result) {
-            
-            dispatch_async(dispatch_get_main_queue(), ^{
-                
-                if (self.delegate) {
-                    [self.delegate onStopLoading];
+    
+    NSString *cacheDir = NSTemporaryDirectory();
+    
+    if (![[NSFileManager defaultManager] fileExistsAtPath:cacheDir]) {
+        [[NSFileManager defaultManager] createDirectoryAtPath:cacheDir withIntermediateDirectories:NO attributes:nil error:nil];
+    }
+    [RANetwork request_file:url parameters:[params mutableCopy] err_record_url:nil completionHandler:^(NSMutableDictionary *result) {
+        if (self.delegate) {
+            [self.delegate onStopLoading];
 
-                    self.documentPath = nil;
-                    if ([[result objectForKey:@"result"] intValue] == RESULT_TRUE) {
-                        
-                        NSString *cachePath = [result objectForKey:@"path"];
-                        self.documentPath = cachePath;
-                        [self.delegate onDownloadFile:cachePath];
-                        
-                    } else {
-                        
-                        NSString *msg = [result objectForKey:@"msg"];
-                        [self.delegate onFailed:msg];
-                    }
-                }
+            self.documentPath = nil;
+            if ([[result objectForKey:@"result"] intValue] == RESULT_TRUE) {
                 
-            }); // main queue
-            
-        }]; // network
-        
-    }); // global queue
+                NSString *cachePath = [result objectForKey:@"path"];
+                self.documentPath = cachePath;
+                [self.delegate onDownloadFile:cachePath];
+                
+            } else {
+                
+                NSString *msg = [result objectForKey:@"msg"];
+                [self.delegate onFailed:msg];
+            }
+        };
+    }];
+    return;
+//    
+//    
+//    dispatch_async(dispatch_get_global_queue(0, 0), ^{
+//        
+//        NSString *cacheDir = NSTemporaryDirectory();
+//        
+//        if (![[NSFileManager defaultManager] fileExistsAtPath:cacheDir]) {
+//            [[NSFileManager defaultManager] createDirectoryAtPath:cacheDir withIntermediateDirectories:NO attributes:nil error:nil];
+//        }
+//
+//        
+//        [RANetwork download_file:[params mutableCopy] url:url toCachePath:cacheDir progressHandler:^(NSURLSessionTask *task, double progress) {
+//            
+//            DebugLog(@"download progress %f",progress);
+//        } completionHandler:^(NSMutableDictionary *result) {
+//            
+//            dispatch_async(dispatch_get_main_queue(), ^{
+//                
+//                if (self.delegate) {
+//                    [self.delegate onStopLoading];
+//
+//                    self.documentPath = nil;
+//                    if ([[result objectForKey:@"result"] intValue] == RESULT_TRUE) {
+//                        
+//                        NSString *cachePath = [result objectForKey:@"path"];
+//                        self.documentPath = cachePath;
+//                        [self.delegate onDownloadFile:cachePath];
+//                        
+//                    } else {
+//                        
+//                        NSString *msg = [result objectForKey:@"msg"];
+//                        [self.delegate onFailed:msg];
+//                    }
+//                }
+//                
+//            }); // main queue
+//            
+//        }]; // network
+//        
+//    }); // global queue
 }
 
 @end

+ 1 - 1
Apex Mobile/Apex Mobile/SearchViewController.m

@@ -14,7 +14,7 @@
 #import "TableCellDate.h"
 #import "TableCellBool.h"
 #import "MyAutocompleteView.h"
-#import "AMResultViewController.h"
+//#import "AMResultViewController.h"
 #import "ApexResultViewController.h"
 
 @interface SearchViewController () <UISearchBarDelegate>

+ 2 - 1
common/NetworkUtils.h

@@ -15,6 +15,7 @@ typedef NSMutableDictionary*(^decryptBlock)(NSMutableDictionary* result);
 
 typedef void(^resultHandler)(NSMutableDictionary *result);
 typedef void(^progressHandler)(NSURLSessionTask *task,double progress);
+typedef void(^dataHandler)(NSData *data);
 
 @interface NetworkUtils : NSObject
 +(bool) IsNetworkAvailable;
@@ -32,5 +33,5 @@ typedef void(^progressHandler)(NSURLSessionTask *task,double progress);
 // 2020 新增网络访问底层接口,取代get_json
 // 普通请求
 +(NSData*)request_interface : (NSString*) url parameters:(NSMutableDictionary *) params  err_record_url:(NSString* )recorder_url completionHandler:(resultHandler)result retry:(int) retry;
-
++(NSData*)request_file : (NSString*) url parameters:(NSMutableDictionary *) params  err_record_url:(NSString* )recorder_url completionHandler:(resultHandler)result;
 @end

+ 409 - 3
common/NetworkUtils.m

@@ -580,8 +580,10 @@ repeat:
     
         if(![NetworkUtils IsNetworkAvailable])
         {
-            
-            result([[RAConvertor string2dict:[NSString stringWithFormat:@"{'result':%d}",RESULT_NET_NOTAVAILABLE]] mutableCopy]);
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if(result)
+                    result([[RAConvertor string2dict:[NSString stringWithFormat:@"{'result':%d}",RESULT_NET_NOTAVAILABLE]] mutableCopy]);
+            });
     //        return detailContent;
             return nil;
         }
@@ -786,9 +788,10 @@ repeat:
                             {
                                 [self err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:[RAConvertor dict2string:ret]] module:url code:RESULT_NET_ERROR];
                             }
+                            dispatch_async(dispatch_get_main_queue(), ^{
                             if(result)
                                 return result([[RAConvertor data2dict:jsonData] mutableCopy]);
-
+                            });
                         }
                         else
                         {
@@ -921,4 +924,407 @@ repeat:
 //        return responseData;
 //    }
 }
+
+
+
++(NSData*)request_file : (NSString*) url parameters:(NSMutableDictionary *) params  err_record_url:(NSString* )recorder_url completionHandler:(resultHandler)result
+/* dataHandler:(dataHandler)returndata*/
+{
+//    __block int retry = 0;
+    
+    
+    
+        if(![NetworkUtils IsNetworkAvailable])
+        {
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if(result)
+                    result([[RAConvertor string2dict:[NSString stringWithFormat:@"{'result':%d}",RESULT_NET_NOTAVAILABLE]] mutableCopy]);
+            });
+    //        return detailContent;
+            return nil;
+        }
+
+    params = [self prepare_addtional_params:params];
+    
+    
+//repeat:
+//    {
+        
+        //    return [self fake_json:url];
+        
+        //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        //分界线的标识符
+        NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
+        //根据url初始化request
+        NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
+                                                               cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+                                                           timeoutInterval:JSON_TIMEOUT];
+
+        //分界线 --AaB03x
+        NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
+        //结束符 AaB03x--
+        NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
+        //要上传的图片
+        //    UIImage *image=[params objectForKey:@"pic"];
+        //得到图片的data
+        /*
+//            NSData* data = [NSData dataWithContentsOfFile:file_path];
+         
+         */
+        //http body的字符串
+        NSMutableString *body=[[NSMutableString alloc]init];
+        
+        //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+        //     [params setValue:@"handset_login" forKey:@"action"];
+        //    [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
+        
+        //    [params setValue:appDelegate.sessionid forKey:@"sessionid"];
+        //   [params setValue:password forKey:@"password"];
+        //    [params setValue:[NSString stringWithFormat:@"%d",ver]  forKey:@"auth_ver"];
+        
+        
+        
+        //    [headers setValue:headQuerlString forKey:@"param"];
+        
+        //参数的集合的所有key的集合
+        NSArray *keys= [params allKeys];
+        DebugLog(@"================parms==================");
+        //遍历keys
+        for(int i=0;i<[keys count];i++)
+        {
+            //得到当前key
+            NSString *key=[keys objectAtIndex:i];
+            //如果key不是pic,说明value是字符类型,比如name:Boris
+            if(![key isEqualToString:@"pic"])
+            {
+                //添加分界线,换行
+                [body appendFormat:@"%@\r\n",MPboundary];
+                //添加字段名称,换2行
+                [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
+                //添加字段的值
+                [body appendFormat:@"%@\r\n",[params objectForKey:key]];
+                DebugLog(@"parameter: key=%@   value=%@",key,[params objectForKey:key]);
+            }
+        }
+        DebugLog(@"================parms==================");
+        ////添加分界线,换行
+       /* [body appendFormat:@"%@\r\n",MPboundary];
+        
+        
+        //声明pic字段,文件名为boris.png
+        
+        NSString * file_format=[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"upfile\"; filename=\"%@\"\r\n", [file_path lastPathComponent]];
+
+        
+        
+        [body appendFormat:@"%@", file_format];
+        //声明上传文件的格式
+        [body appendFormat:@"Content-Type: application/zip\r\n\r\n"];
+        
+        
+        */
+        //声明结束符:--AaB03x--
+        NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];
+        //声明myRequestData,用来放入http body
+        NSMutableData *myRequestData=[NSMutableData data];
+        //将body字符串转化为UTF8格式的二进制
+        [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];
+        
+        
+        /*
+        //将image的data加入
+            [myRequestData appendData:data];
+        
+        */
+        
+        //加入结束符--AaB03x--
+        [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];
+        
+        
+        
+        
+        //设置HTTPHeader中Content-Type的值
+        NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
+        //设置HTTPHeader
+        [request setValue:content forHTTPHeaderField:@"Content-Type"];
+        
+        [request setValue:@"multipart/form-data" forHTTPHeaderField:@"enctype"];
+        
+        // 关闭keep alive
+        [request setValue:@"close" forHTTPHeaderField:@"Connection"];
+        //设置Content-Length
+        [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[myRequestData length]] forHTTPHeaderField:@"Content-Length"];
+        //设置http body
+        [request setHTTPBody:myRequestData];
+        //http method
+        [request setHTTPMethod:@"POST"];
+        
+        
+        
+         
+         NSURLSession *urlSession = [self standSession];
+         
+         if (urlSession.delegate) {
+             if ([urlSession.delegate isKindOfClass:[RANetworkTaskDelegate class]]) {
+                 
+                 RANetworkTaskDelegate *delegate = (RANetworkTaskDelegate *)urlSession.delegate;
+                 
+//                 if (p) {
+//                     delegate.p = p;
+//                 }
+//
+                 if (result) {
+                     delegate.r = result;
+                 }
+//
+//                 if (decrypt) {
+//                     delegate.decryptHandler = decrypt;
+//                 }
+                 
+             }
+         }
+    
+    NSURLSessionDownloadTask* downloadTask=[urlSession downloadTaskWithRequest:request completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+        
+        NSHTTPURLResponse* urlResponse =response;
+       NSData* data =[NSData dataWithContentsOfURL:location] ;
+        NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+        if(data==nil)
+        {
+             NSString* err_msg = [error localizedDescription];
+            NSDictionary* error_json = [RAUtils error_dict:error];
+            [ret setObject:error_json forKey:@"err_obj"];
+            NSString* resp_msg= nil;
+
+            if(err_msg.length==0)
+            {
+                err_msg =[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode];
+                resp_msg = err_msg;
+            }
+            [ret setValue:[NSString stringWithFormat:@"%d",RESULT_NET_ERROR] forKey:@"result"];
+            [ret setValue:err_msg forKey:@"err_msg"];
+            [ret setValue:resp_msg forKey:@"resp_msg"];
+            [ret setValue:[NSString stringWithFormat:@"%ld",(long)urlResponse.statusCode] forKey:@"resp_code"];
+            
+            dispatch_async(dispatch_get_main_queue(), ^{
+            if(result)
+                result(ret);
+            });
+        }
+        else
+        {
+            ret[@"result"]=@"2";
+            ret[@"data"]=data;
+            ret[@"path"]=[location absoluteString];
+            dispatch_async(dispatch_get_main_queue(), ^{
+            if(result)
+                result(ret);
+            });
+        }
+//        if(returndata)
+//        {
+//            returndata(data);
+//        }
+    }];
+    
+    [downloadTask resume];
+    
+    return nil;
+//
+//        NSURLSessionDataTask *dataTask =[urlSession dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+//
+//                        NSData *responseData =data;
+//                        NSHTTPURLResponse* urlResponse =response;
+//                        if (responseData==nil) {
+//
+//                            //            DebugLog(@"response error:%@", [error localizedDescription]);
+//
+//
+//                            NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+//                            //#define RESULT_FALSE 0
+//                            //#define RESULT_TRUE         2
+//                            //#define RESULT_NET_ERROR             -3
+//                            //#define RESULT_NET_NOTAVAILABLE          -4
+//                            //#define RESULT_ERROR                 -5
+//                            //#define RESULT_LOCALFILE_ERROR             -7
+//                            //#define RESULT_USERAUTH_ERROR             -9
+//                            //#define RESULT_UPDATE_USERAUTH_ERROR     -11
+//                            //#define RESULT_SESSION_EXPIRED              -13
+//                            //#define RESULT_VER_LOW
+//
+//                            //     NSString * moreinfo = error.description ;
+//
+//                            NSString* err_msg = [error localizedDescription];
+//
+//
+//                            //-----------------retry 3 times for error code -1005------------------------
+//                            if(error.code==-1005&&retry<3)
+//                            {
+//                                int new_retry=retry+1;
+//                                [self request_interface:url parameters:params err_record_url:recorder_url completionHandler:result retry:new_retry];
+//                                return;
+//            //                    retry++;
+//            //                    goto repeat;
+//
+//                            }
+//                            //-----------------end retry 3 times for error code -1005------------------------
+//
+//                            NSDictionary* error_json = [RAUtils error_dict:error];
+//                            [ret setObject:error_json forKey:@"err_obj"];
+//                            NSString* resp_msg= nil;
+//
+//                            if(err_msg.length==0)
+//                            {
+//                                err_msg =[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode];
+//                                resp_msg = err_msg;
+//                            }
+//                            [ret setValue:[NSString stringWithFormat:@"%d",RESULT_NET_ERROR] forKey:@"result"];
+//                            [ret setValue:err_msg forKey:@"err_msg"];
+//                            [ret setValue:resp_msg forKey:@"resp_msg"];
+//                            [ret setValue:[NSString stringWithFormat:@"%ld",(long)urlResponse.statusCode] forKey:@"resp_code"];
+//
+//
+//                            NSData *jsonData = [NSJSONSerialization dataWithJSONObject:ret
+//                                                                               options:0
+//                                                                                 error:nil];
+//                            if(![url isEqualToString:recorder_url])
+//                            {
+//                                [self err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:[RAConvertor dict2string:ret]] module:url code:RESULT_NET_ERROR];
+//                            }
+//
+//                            if(result)
+//                                return result([[RAConvertor data2dict:jsonData] mutableCopy]);
+//
+//                        }
+//                        else
+//                        {
+//                            NSDictionary* dict =[RAConvertor data2dict:responseData];
+//                            dispatch_async(dispatch_get_main_queue(), ^{
+//                                if(result)
+//                                    return result([[RAConvertor data2dict:responseData] mutableCopy]);
+//                            });
+//
+//                        }
+//
+//        }];
+////         NSURLSessionDataTask *dataTask = [urlSession dataTaskWithRequest:request ];
+//
+//         [dataTask resume];
+//
+//         return nil;
+         
+         
+         
+        
+//
+//
+//        NSHTTPURLResponse* urlResponse = nil;
+//
+//        NSError *error = nil;
+//        NSLog(@"begin request %@",url);
+//
+//        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
+//
+//
+//        DebugLog(@"url: %@",url);
+//
+//        DebugLog(@"response: %@",[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode]);
+//
+//
+//        NSLog(@"get response");
+//        if (responseData==nil) {
+//
+//            //            DebugLog(@"response error:%@", [error localizedDescription]);
+//
+//
+//            NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+//            //#define RESULT_FALSE 0
+//            //#define RESULT_TRUE         2
+//            //#define RESULT_NET_ERROR             -3
+//            //#define RESULT_NET_NOTAVAILABLE          -4
+//            //#define RESULT_ERROR                 -5
+//            //#define RESULT_LOCALFILE_ERROR             -7
+//            //#define RESULT_USERAUTH_ERROR             -9
+//            //#define RESULT_UPDATE_USERAUTH_ERROR     -11
+//            //#define RESULT_SESSION_EXPIRED              -13
+//            //#define RESULT_VER_LOW
+//
+//            //     NSString * moreinfo = error.description ;
+//
+//            NSString* err_msg = [error localizedDescription];
+//
+//
+//            //-----------------retry 3 times for error code -1005------------------------
+//            if(error.code==-1005&&retry<3)
+//            {
+//                retry++;
+//                goto repeat;
+//
+//            }
+//            //-----------------end retry 3 times for error code -1005------------------------
+//
+//            NSDictionary* error_json = [RAUtils error_dict:error];
+//            [ret setObject:error_json forKey:@"err_obj"];
+//            NSString* resp_msg= nil;
+//
+//            if(err_msg.length==0)
+//            {
+//                err_msg =[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode];
+//                resp_msg = err_msg;
+//            }
+//            [ret setValue:[NSString stringWithFormat:@"%d",RESULT_NET_ERROR] forKey:@"result"];
+//            [ret setValue:err_msg forKey:@"err_msg"];
+//            [ret setValue:resp_msg forKey:@"resp_msg"];
+//            [ret setValue:[NSString stringWithFormat:@"%ld",(long)urlResponse.statusCode] forKey:@"resp_code"];
+//
+//
+//            NSData *jsonData = [NSJSONSerialization dataWithJSONObject:ret
+//                                                               options:0
+//                                                                 error:nil];
+//            if(![url isEqualToString:recorder_url])
+//            {
+//                [self err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:[RAConvertor dict2string:ret]] module:url code:RESULT_NET_ERROR];
+//            }
+//            return jsonData;
+//
+//        }
+//        else
+//        {
+//          //  NSString* err_msg = [error localizedDescription];
+//            NSMutableString *str = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
+//
+//            DebugLog(@"data string: %@",str);
+//            NSError *error1 = nil;
+//
+//            NSMutableDictionary* jsobj = [[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error1] mutableCopy];
+//
+//            if(jsobj==nil)// 服务器返回不是json
+//            {
+//
+//                jsobj=[[NSMutableDictionary alloc] init];
+//                [jsobj setValue:[NSNumber numberWithInt:RESULT_NO_RESPONSE] forKey:@"result"];
+//
+//            }
+////            if([jsobj[@"encrypt"] boolValue]==true)
+////            {
+////                jsobj = decryptBlock(jsobj);
+////            }
+////            if (resultBlock) {
+////                jsobj = resultBlock(jsobj);
+////            }
+//
+//            int result=[[jsobj valueForKey:@"result"] intValue];
+//            if(![url isEqualToString:recorder_url]&&/*![url isEqualToString:URL_DOWNLOAD_OFFLINE]&&*/result!=2&&result!=99)
+//            {
+//                [self err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:str] module:url code:result];
+//            }
+//            NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsobj
+//                                                               options:0
+//                                                                 error:nil];
+//            return jsonData;
+//
+//        }
+//        return responseData;
+//    }
+}
 @end