|
@@ -111,11 +111,13 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
|
|
|
NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
|
|
NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
|
|
|
[params setValue:short_version forKey:@"app_short_ver"];
|
|
[params setValue:short_version forKey:@"app_short_ver"];
|
|
|
|
|
|
|
|
- UIDevice * dev = [UIDevice currentDevice];
|
|
|
|
|
- NSUUID* uuid =dev.identifierForVendor;
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
#if TARGET_IPHONE_SIMULATOR//模拟器
|
|
#if TARGET_IPHONE_SIMULATOR//模拟器
|
|
|
[params setValue:@"simulator_uuid" forKey:@"idfv"];
|
|
[params setValue:@"simulator_uuid" forKey:@"idfv"];
|
|
|
#elif TARGET_OS_IPHONE//真机
|
|
#elif TARGET_OS_IPHONE//真机
|
|
|
|
|
+ UIDevice * dev = [UIDevice currentDevice];
|
|
|
|
|
+ NSUUID* uuid =dev.identifierForVendor;
|
|
|
[params setValue:uuid.UUIDString forKey:@"idfv"];
|
|
[params setValue:uuid.UUIDString forKey:@"idfv"];
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
@@ -295,280 +297,280 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
|
|
|
[ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
[ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
|
#endif
|
|
#endif
|
|
|
return [self get_json:url parameters:params file:nil];
|
|
return [self get_json:url parameters:params file:nil];
|
|
|
-
|
|
|
|
|
- int retry = 0;
|
|
|
|
|
-
|
|
|
|
|
- __block AppDelegate *appDelegate = nil;
|
|
|
|
|
-
|
|
|
|
|
- dispatch_sync(dispatch_get_main_queue(), ^{
|
|
|
|
|
- //some UI methods ej
|
|
|
|
|
- appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
|
|
|
|
|
- });
|
|
|
|
|
- if(appDelegate.user!=nil)
|
|
|
|
|
- [params setValue:appDelegate.user forKey:@"user"];
|
|
|
|
|
- if(appDelegate.password!=nil)
|
|
|
|
|
- [params setValue:appDelegate.password forKey:@"password"];
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if(appDelegate.ipad_perm!=nil)
|
|
|
|
|
- [params setValue:appDelegate.ipad_perm forKey:@"ipad_perm"];
|
|
|
|
|
-
|
|
|
|
|
- [params setValue:appDelegate.build forKey:@"app_ver"];
|
|
|
|
|
-
|
|
|
|
|
- NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
|
|
|
- NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
|
|
|
|
|
- [params setValue:short_version forKey:@"app_short_ver"];
|
|
|
|
|
-
|
|
|
|
|
- UIDevice * dev = [UIDevice currentDevice];
|
|
|
|
|
- NSUUID* uuid =dev.identifierForVendor;
|
|
|
|
|
-#if TARGET_IPHONE_SIMULATOR//模拟器
|
|
|
|
|
- [params setValue:@"simulator_uuid" forKey:@"idfv"];
|
|
|
|
|
-#elif TARGET_OS_IPHONE//真机
|
|
|
|
|
- [params setValue:uuid.UUIDString forKey:@"idfv"];
|
|
|
|
|
-#endif
|
|
|
|
|
-
|
|
|
|
|
-// NSString *screenName = [params valueForKey:kScreenName];
|
|
|
|
|
-// NSString *userAction = [params valueForKey:kAction];
|
|
|
|
|
-// NSMutableDictionary *extra = [[params valueForKey:kExtra] mutableCopy];
|
|
|
|
|
-// if ([userAction isEqualToString:@"Login"]) {
|
|
|
|
|
-// if (!extra) {
|
|
|
|
|
-// extra = [NSMutableDictionary dictionary];
|
|
|
|
|
|
|
+// {
|
|
|
|
|
+// int retry = 0;
|
|
|
|
|
+//
|
|
|
|
|
+// __block AppDelegate *appDelegate = nil;
|
|
|
|
|
+//
|
|
|
|
|
+// dispatch_sync(dispatch_get_main_queue(), ^{
|
|
|
|
|
+// //some UI methods ej
|
|
|
|
|
+// appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
|
|
|
|
|
+// });
|
|
|
|
|
+// if(appDelegate.user!=nil)
|
|
|
|
|
+// [params setValue:appDelegate.user forKey:@"user"];
|
|
|
|
|
+// if(appDelegate.password!=nil)
|
|
|
|
|
+// [params setValue:appDelegate.password forKey:@"password"];
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// if(appDelegate.ipad_perm!=nil)
|
|
|
|
|
+// [params setValue:appDelegate.ipad_perm forKey:@"ipad_perm"];
|
|
|
|
|
+//
|
|
|
|
|
+// [params setValue:appDelegate.build forKey:@"app_ver"];
|
|
|
|
|
+//
|
|
|
|
|
+// NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
|
|
|
+// NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
|
|
|
|
|
+// [params setValue:short_version forKey:@"app_short_ver"];
|
|
|
|
|
+//
|
|
|
|
|
+// UIDevice * dev = [UIDevice currentDevice];
|
|
|
|
|
+// NSUUID* uuid =dev.identifierForVendor;
|
|
|
|
|
+//#if TARGET_IPHONE_SIMULATOR//模拟器
|
|
|
|
|
+// [params setValue:@"simulator_uuid" forKey:@"idfv"];
|
|
|
|
|
+//#elif TARGET_OS_IPHONE//真机
|
|
|
|
|
+// [params setValue:uuid.UUIDString forKey:@"idfv"];
|
|
|
|
|
+//#endif
|
|
|
|
|
+//
|
|
|
|
|
+//// NSString *screenName = [params valueForKey:kScreenName];
|
|
|
|
|
+//// NSString *userAction = [params valueForKey:kAction];
|
|
|
|
|
+//// NSMutableDictionary *extra = [[params valueForKey:kExtra] mutableCopy];
|
|
|
|
|
+//// if ([userAction isEqualToString:@"Login"]) {
|
|
|
|
|
+//// if (!extra) {
|
|
|
|
|
+//// extra = [NSMutableDictionary dictionary];
|
|
|
|
|
+//// }
|
|
|
|
|
+//// [extra setObject:[params objectForKey:@"user"] forKey:@"user"];
|
|
|
|
|
+//// }
|
|
|
|
|
+//
|
|
|
|
|
+//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 = UIImagePNGRepresentation(image);
|
|
|
|
|
+// //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]);
|
|
|
|
|
+// }
|
|
|
// }
|
|
// }
|
|
|
-// [extra setObject:[params objectForKey:@"user"] forKey:@"user"];
|
|
|
|
|
|
|
+// DebugLog(@"================parms==================");
|
|
|
|
|
+// ////添加分界线,换行
|
|
|
|
|
+// [body appendFormat:@"%@\r\n",MPboundary];
|
|
|
|
|
+// //声明pic字段,文件名为boris.png
|
|
|
|
|
+// [body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"boris.png\"\r\n"];
|
|
|
|
|
+// //声明上传文件的格式
|
|
|
|
|
+// [body appendFormat:@"Content-Type: image/png\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"];
|
|
|
|
|
+//
|
|
|
|
|
+// // 关闭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"];
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// NSHTTPURLResponse* urlResponse = nil;
|
|
|
|
|
+//
|
|
|
|
|
+// NSError *error = nil;
|
|
|
|
|
+//
|
|
|
|
|
+// NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// DebugLog(@"url: %@",url);
|
|
|
|
|
+//
|
|
|
|
|
+// DebugLog(@"response: %@",[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode]);
|
|
|
|
|
+//
|
|
|
|
|
+// 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:URL_ERR_LOG])
|
|
|
|
|
+// {
|
|
|
|
|
+// [RANetwork err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:[RAConvertor dict2string:ret]] module:url code:RESULT_NET_ERROR];
|
|
|
|
|
+// }
|
|
|
|
|
+//#if defined(BUILD_NPD)// || defined(BUILD_USAI) || defined(BUILD_UWAVER)
|
|
|
|
|
+// [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
|
|
|
+//#endif
|
|
|
|
|
+// 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:@"1" forKey:@"result"];
|
|
|
|
|
+//
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// int result=[[jsobj valueForKey:@"result"] intValue];
|
|
|
|
|
+// UIApplication * app = [UIApplication sharedApplication];
|
|
|
|
|
+// AppDelegate *appDelegate = (AppDelegate *)[app delegate];
|
|
|
|
|
+// NSString* mode =[jsobj valueForKey:@"mode"];
|
|
|
|
|
+// [appDelegate SetMode:mode];
|
|
|
|
|
+// switch (result) {
|
|
|
|
|
+// case 0:
|
|
|
|
|
+// [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// case 1:
|
|
|
|
|
+// [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// case 2:
|
|
|
|
|
+// [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// case 8:
|
|
|
|
|
+// [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// case 9:
|
|
|
|
|
+// [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// case 99:
|
|
|
|
|
+// [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// default:
|
|
|
|
|
+// [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
|
|
|
|
|
+// break;
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// if([appDelegate.build intValue]< [[jsobj valueForKey:@"min_ver"]intValue])
|
|
|
|
|
+// {
|
|
|
|
|
+// [jsobj setValue:@"9" forKey:@"result"];
|
|
|
|
|
+// [jsobj setValue:MSG_VER_LOW forKey:@"err_msg"];
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// if(![url isEqualToString:URL_ERR_LOG]&&![url isEqualToString:URL_DOWNLOAD_OFFLINE]/*&&result!=-3*/&&result!=2&&result!=99)
|
|
|
|
|
+// {
|
|
|
|
|
+// [RANetwork err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:str] module:url code:result];
|
|
|
|
|
+// }
|
|
|
|
|
+// NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsobj
|
|
|
|
|
+// options:0
|
|
|
|
|
+// error:nil];
|
|
|
|
|
+//#if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)
|
|
|
|
|
+// [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
|
|
|
+//#endif
|
|
|
|
|
+// return jsonData;
|
|
|
|
|
+//
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// return responseData;
|
|
|
// }
|
|
// }
|
|
|
-
|
|
|
|
|
-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 = UIImagePNGRepresentation(image);
|
|
|
|
|
- //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
|
|
|
|
|
- [body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"boris.png\"\r\n"];
|
|
|
|
|
- //声明上传文件的格式
|
|
|
|
|
- [body appendFormat:@"Content-Type: image/png\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"];
|
|
|
|
|
-
|
|
|
|
|
- // 关闭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"];
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- NSHTTPURLResponse* urlResponse = nil;
|
|
|
|
|
-
|
|
|
|
|
- NSError *error = nil;
|
|
|
|
|
-
|
|
|
|
|
- NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- DebugLog(@"url: %@",url);
|
|
|
|
|
-
|
|
|
|
|
- DebugLog(@"response: %@",[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode]);
|
|
|
|
|
-
|
|
|
|
|
- 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:URL_ERR_LOG])
|
|
|
|
|
- {
|
|
|
|
|
- [RANetwork err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:[RAConvertor dict2string:ret]] module:url code:RESULT_NET_ERROR];
|
|
|
|
|
- }
|
|
|
|
|
-#if defined(BUILD_NPD)// || defined(BUILD_USAI) || defined(BUILD_UWAVER)
|
|
|
|
|
- [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
|
|
|
-#endif
|
|
|
|
|
- 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:@"1" forKey:@"result"];
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- int result=[[jsobj valueForKey:@"result"] intValue];
|
|
|
|
|
- UIApplication * app = [UIApplication sharedApplication];
|
|
|
|
|
- AppDelegate *appDelegate = (AppDelegate *)[app delegate];
|
|
|
|
|
- NSString* mode =[jsobj valueForKey:@"mode"];
|
|
|
|
|
- [appDelegate SetMode:mode];
|
|
|
|
|
- switch (result) {
|
|
|
|
|
- case 0:
|
|
|
|
|
- [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- case 1:
|
|
|
|
|
- [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- case 2:
|
|
|
|
|
- [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- case 8:
|
|
|
|
|
- [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- case 9:
|
|
|
|
|
- [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- case 99:
|
|
|
|
|
- [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- default:
|
|
|
|
|
- [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if([appDelegate.build intValue]< [[jsobj valueForKey:@"min_ver"]intValue])
|
|
|
|
|
- {
|
|
|
|
|
- [jsobj setValue:@"9" forKey:@"result"];
|
|
|
|
|
- [jsobj setValue:MSG_VER_LOW forKey:@"err_msg"];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(![url isEqualToString:URL_ERR_LOG]&&![url isEqualToString:URL_DOWNLOAD_OFFLINE]/*&&result!=-3*/&&result!=2&&result!=99)
|
|
|
|
|
- {
|
|
|
|
|
- [RANetwork err_log:[RAUtils base64en:[RAConvertor dict2string:params]] result:[RAUtils base64en:str] module:url code:result];
|
|
|
|
|
- }
|
|
|
|
|
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsobj
|
|
|
|
|
- options:0
|
|
|
|
|
- error:nil];
|
|
|
|
|
-#if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)
|
|
|
|
|
- [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
|
|
|
|
|
-#endif
|
|
|
|
|
- return jsonData;
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return responseData;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+//}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
+(NSString*)DataTOjsonString:(id)object
|
|
+(NSString*)DataTOjsonString:(id)object
|
|
|
{
|
|
{
|
|
|
NSString *jsonString = nil;
|
|
NSString *jsonString = nil;
|
|
@@ -4322,7 +4324,7 @@ repeat:
|
|
|
// NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
// NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
|
// NSString* versionNum =[infoDict valueForKey:@"CFBundleVersion"];
|
|
// NSString* versionNum =[infoDict valueForKey:@"CFBundleVersion"];
|
|
|
// versionNum = [NSString stringWithFormat:@"A%@",versionNum];
|
|
// versionNum = [NSString stringWithFormat:@"A%@",versionNum];
|
|
|
- int ibadge = [[objheader valueForKey:@"badge"] intValue];
|
|
|
|
|
|
|
+// int ibadge = [[objheader valueForKey:@"badge"] intValue];
|
|
|
|
|
|
|
|
// if([ibadge isEqual:[NSNull null]])
|
|
// if([ibadge isEqual:[NSNull null]])
|
|
|
// strbadge=@"0";
|
|
// strbadge=@"0";
|
|
@@ -5414,7 +5416,7 @@ repeat:
|
|
|
// NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
// NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
|
|
|
// NSString* versionNum =[infoDict valueForKey:@"CFBundleVersion"];
|
|
// NSString* versionNum =[infoDict valueForKey:@"CFBundleVersion"];
|
|
|
// versionNum = [NSString stringWithFormat:@"A%@",versionNum];
|
|
// versionNum = [NSString stringWithFormat:@"A%@",versionNum];
|
|
|
- int ibadge = [[objheader valueForKey:@"badge"] intValue];
|
|
|
|
|
|
|
+// int ibadge = [[objheader valueForKey:@"badge"] intValue];
|
|
|
|
|
|
|
|
// if([ibadge isEqual:[NSNull null]])
|
|
// if([ibadge isEqual:[NSNull null]])
|
|
|
// strbadge=@"0";
|
|
// strbadge=@"0";
|
|
@@ -7707,7 +7709,7 @@ repeat:
|
|
|
// {
|
|
// {
|
|
|
// if(![self IsNetworkAvailable])
|
|
// if(![self IsNetworkAvailable])
|
|
|
// return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
|
|
// return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
|
|
|
-//
|
|
|
|
|
|
|
+//
|
|
|
// json=[self get_json:URL_COPY_ORDER parameters:params];
|
|
// json=[self get_json:URL_COPY_ORDER parameters:params];
|
|
|
// }
|
|
// }
|
|
|
// if(json!=nil)
|
|
// if(json!=nil)
|