Ich benutze OHHTTPStubs, um HTTP-Anfragen zu stummeln, und ich versuche, SWHttpTrafficRecorder zu verwenden, um den von AFNetworking erzeugten Verkehr aufzuzeichnen. Aus irgendeinem Grund kann ich den Verkehrsrecorder nicht dazu bringen, den von meinem AFNetwork AFHTTPSessionManager erzeugten Verkehr aufzuzeichnen. Ich übergebe die Config und alles, aber es schafft nur keine Dateien oder erkennen, dass Web-Anfragen gemacht werden. Hier ist der Code für den Betrieb des Recorders:SWHttpTrafficRecorder AFNetworking 3.0-Kompatibilität
NSError *e;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *bpdDir = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"BPDTests"];
NSLog(@"setting up traffic recorder");
self.recorder = [SWHttpTrafficRecorder sharedRecorder];
__weak BPDKAPIClient_Tests *weakSelf = self;
// This block determines the name that will be given to the file generated
// by each http request
self.recorder.fileNamingBlock = ^NSString*(NSURLRequest *request, NSURLResponse *response, NSString *defaultName)
{
NSString *name = [weakSelf fileNameForRequest:request];
NSLog(@"new name: %@, default name: %@", name, defaultName);
return name;
};
// This block determines if we will record the http request
self.recorder.recordingTestBlock = ^BOOL(NSURLRequest *request)
{
NSString *path = [weakSelf filePathForRequest:request];
NSLog(@"are we deciding to record?");
(![[NSFileManager defaultManager] fileExistsAtPath:path]) ? NSLog(@"Yes") : NSLog(@"No");
return ![[NSFileManager defaultManager] fileExistsAtPath:path];
};
// This line forces the singleton configuration to initialize it's session manager and by extension the session
// configuration. This way we can actually pass in the configuration to the recorder
__unused AFHTTPSessionManager *m = self.apiClient.apiClientConfig.httpSessionManager;
NSLog(@"config passed in: %@", self.apiClient.apiClientConfig.httpSessionManagerConfiguration);
[self.recorder startRecordingAtPath:bpdDir
forSessionConfiguration:self.apiClient.apiClientConfig.httpSessionManagerConfiguration
error:&e];
if (e)
{
NSLog(@"error recording: %@", e);
}
Weiß jemand, ob SWTrafficRecorder und AFNetworking 3.0 kompatibel sind? Wenn ja, warum sind meine Anforderungen nicht Recorder? Wenn nicht, welche andere Bibliothek kann ich verwenden, um http-Verkehr von AFNetwork aufzuzeichnen?