Kaynağa Gözat

Record/show “request mechanism” for requests.

i.e. NSURLConnection (delegate: AFURLConnectionOperation)
Ryan Olson 11 yıl önce
ebeveyn
işleme
b8d8f29c97

+ 1 - 1
Classes/Network/FLEXNetworkRecorder.h

@@ -36,7 +36,7 @@ extern NSString *const kFLEXNetworkRecorderUserInfoTransactionKey;
 
 /// Call when app is about to send HTTP request.
 /// This method must be called for each recorded reqeust. Prior to this call, no information will be recorded for the request.
-- (void)recordRequestWillBeSentWithRequestId:(NSString *)requestId request:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse;
+- (void)recordRequestWillBeSentWithRequestId:(NSString *)requestId request:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse requestMechanism:(NSString *)mechanism;
 
 /// Call when HTTP response is available.
 - (void)recordResponseReceivedWithRequestId:(NSString *)requestId response:(NSURLResponse *)response;

+ 2 - 1
Classes/Network/FLEXNetworkRecorder.m

@@ -86,7 +86,7 @@ NSString *const kFLEXNetworkRecorderResponseCacheLimitDefaultsKey = @"com.flex.r
 
 #pragma mark - Network Events
 
-- (void)recordRequestWillBeSentWithRequestId:(NSString *)requestId request:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
+- (void)recordRequestWillBeSentWithRequestId:(NSString *)requestId request:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse requestMechanism:(NSString *)mechanism
 {
     if (redirectResponse) {
         [self recordResponseReceivedWithRequestId:requestId response:redirectResponse];
@@ -100,6 +100,7 @@ NSString *const kFLEXNetworkRecorderResponseCacheLimitDefaultsKey = @"com.flex.r
         transaction.request = request;
         transaction.startTime = [NSDate date];
         transaction.transactionState = FLEXNetworkTransactionStateAwaitingResponse;
+        transaction.requestMechanism = mechanism;
 
         [self.orderedTransactions insertObject:transaction atIndex:0];
         [self.networkTransactionsForRequestIdentifiers setObject:transaction forKey:requestId];

+ 1 - 0
Classes/Network/FLEXNetworkTransaction.h

@@ -22,6 +22,7 @@ typedef NS_ENUM(NSInteger, FLEXNetworkTransactionState) {
 
 @property (nonatomic, strong) NSURLRequest *request;
 @property (nonatomic, strong) NSURLResponse *response;
+@property (nonatomic, copy) NSString *requestMechanism;
 @property (nonatomic, assign) FLEXNetworkTransactionState transactionState;
 @property (nonatomic, strong) NSError *error;
 

+ 5 - 0
Classes/Network/FLEXNetworkTransactionDetailTableViewController.m

@@ -253,6 +253,11 @@ typedef UIViewController *(^FLEXNetworkDetailRowSelectionFuture)(void);
         [rows addObject:statusCodeRow];
     }
 
+    FLEXNetworkDetailRow *mechanismRow = [[FLEXNetworkDetailRow alloc] init];
+    mechanismRow.title = @"Mechanism";
+    mechanismRow.detailText = transaction.requestMechanism;
+    [rows addObject:mechanismRow];
+
     FLEXNetworkDetailRow *mimeTypeRow = [[FLEXNetworkDetailRow alloc] init];
     mimeTypeRow.title = @"MIME Type";
     mimeTypeRow.detailText = transaction.response.MIMEType;

+ 6 - 6
Classes/Network/PonyDebugger/FLEXNetworkObserver.m

@@ -746,7 +746,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
     [self performBlock:^{
         [self setRequest:request forConnection:connection];
         NSString *requestId = [self requestIDForConnection:connection];
-        [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:requestId request:request redirectResponse:response];
+        [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:requestId request:request redirectResponse:response requestMechanism:[NSString stringWithFormat:@"NSURLConnection (%@)", [delegate class]]];
     }];
 }
 
@@ -762,7 +762,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
             if (!request && [connection respondsToSelector:@selector(currentRequest)]) {
                 request = connection.currentRequest;
                 [self setRequest:request forConnection:connection];
-                [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForConnection:connection] request:request redirectResponse:nil];
+                [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForConnection:connection] request:request redirectResponse:nil requestMechanism:[NSString stringWithFormat:@"NSURLConnection (delegate: %@)", [delegate class]]];
             }
             
             NSMutableData *dataAccumulator = nil;
@@ -827,7 +827,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
 {
     [self performBlock:^{
         [self setRequest:request forTask:task];
-        [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForTask:task] request:request redirectResponse:response];
+        [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForTask:task] request:request redirectResponse:response requestMechanism:[NSString stringWithFormat:@"NSURLSessionTask (delegate: %@)", [delegate class]]];
     }];
 }
 
@@ -842,7 +842,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
             request = dataTask.currentRequest;
             [self setRequest:request forTask:dataTask];
 
-            [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForTask:dataTask] request:request redirectResponse:nil];
+            [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:[self requestIDForTask:dataTask] request:request redirectResponse:nil requestMechanism:[NSString stringWithFormat:@"NSURLSessionDataTask (delegate: %@)", [delegate class]]];
         }
 
         NSMutableData *dataAccumulator = nil;
@@ -891,7 +891,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
     }];
 }
 
-- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
+- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite delegate:(id<NSURLSessionDelegate>)delegate
 {
     [self performBlock:^{
         // If the request wasn't generated yet, then willSendRequest was not called. This appears to be an inconsistency in documentation
@@ -903,7 +903,7 @@ NSString *const kFLEXNetworkObserverEnabledStateChangedNotification = @"kFLEXNet
             [self setRequest:request forTask:downloadTask];
             NSString *requestID = [self requestIDForTask:downloadTask];
 
-            [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:requestID request:request redirectResponse:nil];
+            [[FLEXNetworkRecorder defaultRecorder] recordRequestWillBeSentWithRequestId:requestID request:request redirectResponse:nil requestMechanism:[NSString stringWithFormat:@"NSURLSessionDownloadTask (delegate: %@)", [delegate class]]];
 
             NSMutableData *dataAccumulator = nil;
             dataAccumulator = [[NSMutableData alloc] initWithCapacity:(NSUInteger) totalBytesExpectedToWrite];