You should listen for the AFNetworkingOperationDidStartNotification
and AFNetworkingOperationDidFinishNotification
events that fire at the beginning and end of the operation:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(YourOperationStartMethod:)
name:AFNetworkingOperationDidStartNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(YourOperationFinishMethod:)
name:AFNetworkingOperationDidFinishNotification
object:nil];
You can grab the operation object from the notification like this:
AFHTTPRequestOperation *operation =
(AFHTTPRequestOperation *) [notification object];
This operation
object contains request
and response
properties.
A good example of how all this works can be found in the AFHTTPRequestOperationLogger plugin (which, of course, you could simply use, instead of writing your own thing).
转载:http://stackoverflow.com/questions/18385810/afnetworking-get-full-http-response
AFNetworkActivityLogger
AFNetworkActivityLogger
is an extension for AFNetworking 2.0 that logs network requests as they are sent and received.
AFNetworkActivityLogger
listens forAFNetworkingOperationDidStartNotification
/AFNetworkingOperationDidFinishNotification
andAFNetworkingTaskDidStartNotification
/AFNetworkingTaskDidFinishNotification
notifications, which are posted by AFNetworking as request operations and session tasks are started and finish. For further customization of logging output, users are encouraged to implement desired functionality by listening for these notifications.
Usage
Add the following code to AppDelegate.m -application:didFinishLaunchingWithOptions:
:
[[AFNetworkActivityLogger sharedLogger] startLogging];
Now all AFURLConnectionOperation
and NSURLSessionTask
objects created by an AFURLSessionManager
will have their request and response logged to the console, a la:
GET http://example.com/foo/bar.json
200 http://example.com/foo/bar.json
If the default logging level is too verbose—say, if you only want to know when requests fail—then changing it is as simple as:
[[AFNetworkActivityLogger sharedLogger] setLevel:AFLoggerLevelError];
参考:https://github.com/AFNetworking/AFNetworkActivityLogger