BDFaceLog.m 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //
  2. // BDFaceLog.m
  3. // FaceSDKSample_IOS
  4. //
  5. // Created by Zhang,Jian(MBD) on 2020/12/9.
  6. // Copyright © 2020 Baidu. All rights reserved.
  7. //
  8. #import "BDFaceLog.h"
  9. #import <UIKit/UIKit.h>
  10. #import "BDFaceDevice.h"
  11. static NSString *urlStr = @"https://brain.baidu.com/record/api";
  12. @implementation BDFaceLog
  13. + (void)makeLogAfterFinishRecognizeAction:(BOOL)success {
  14. NSMutableDictionary *dic = [self wrapDic:success];
  15. NSURL *url = [NSURL URLWithString:urlStr];
  16. NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
  17. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
  18. [request setHTTPMethod:@"POST"];
  19. [request setURL:url];
  20. [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
  21. [request setHTTPBody:jsonData];
  22. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  23. NSURLResponse *response;
  24. NSError *error = nil;
  25. NSData *receivedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
  26. if (error) {
  27. if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
  28. NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
  29. NSLog(@"HTTP Error: %d %@", (int)httpResponse.statusCode, error);
  30. return;
  31. }
  32. NSLog(@"Error %@", error);
  33. return;
  34. }
  35. if (receivedData) {
  36. NSString *responeString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
  37. NSLog(@"%@", responeString);
  38. }
  39. });
  40. }
  41. +(NSMutableDictionary *)wrapDic:(BOOL)success {
  42. NSMutableDictionary *dataDic = [NSMutableDictionary dictionary];
  43. NSString *bundleId = [self getBundleID];
  44. NSString *versionStr = @"4.1.0.0";
  45. NSString *systemVersion = [[UIDevice currentDevice] systemVersion];
  46. NSString *osString = [[UIDevice currentDevice] systemName];
  47. NSString *imei = [UIDevice currentDevice].identifierForVendor.UUIDString;
  48. NSString *device = [BDFaceDevice deviceName];
  49. NSString *finish = success ? @"1" : @"2";
  50. [dataDic setObject:@"faceprint" forKey:@"scene"];
  51. [dataDic setObject:bundleId ? bundleId : @"" forKey:@"appid"];
  52. [dataDic setObject:finish ? finish : @"" forKey:@"finish"];
  53. [dataDic setObject:@"facesdk" forKey:@"type"];
  54. [dataDic setObject:@"iphone" forKey:@"device"];
  55. [dataDic setObject:@"1" forKey:@"isliving"];
  56. [dataDic setObject:osString ? osString : @"" forKey:@"os"];
  57. [dataDic setObject:device ? device : @"" forKey:@"device"];
  58. [dataDic setObject:imei ? imei : @"" forKey:@"imei"];
  59. [dataDic setObject:versionStr ? versionStr : @"" forKey:@"version"];
  60. [dataDic setObject:systemVersion ? systemVersion : @"" forKey:@"system"];
  61. NSDate *date = [NSDate date];
  62. NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
  63. NSDateComponents *calendarComps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond|NSCalendarUnitWeekOfYear|NSCalendarUnitWeekday fromDate:date];
  64. NSString *year = [NSString stringWithFormat:@"%ld", (long)calendarComps.year];
  65. NSString *month = [NSString stringWithFormat:@"%ld", (long)calendarComps.month];
  66. NSString *day = [NSString stringWithFormat:@"%ld", (long)calendarComps.day];
  67. NSString *hour = [NSString stringWithFormat:@"%ld", (long)calendarComps.hour];
  68. [dataDic setObject:year forKey:@"year"];
  69. [dataDic setObject:month forKey:@"month"];
  70. [dataDic setObject:day forKey:@"day"];
  71. [dataDic setObject:hour forKey:@"hour"];
  72. NSMutableArray *array = [NSMutableArray array];
  73. [array addObject:dataDic];
  74. NSMutableDictionary *desDic = [NSMutableDictionary dictionary];
  75. [desDic setObject:array forKey:@"dt"];
  76. [desDic setObject:@"faceSdkStatistic" forKey:@"mh"];
  77. return desDic;
  78. }
  79. +(NSString*)getBundleID {
  80. return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
  81. }
  82. @end