既然能看到,肯定也可以修改、拦截。
说的就是ios中的一个黑魔法:NSURLProtocol。
这里只说最简单的查看请求头,请求体,请求链接。(header,body,url)
.h代码
#import <Foundation/Foundation.h>
//
//声明一个URL协议,继承于NSURLProtocol
//
@interface MyConnectionURLProtocol : NSURLProtocol
@end
.m代码
+ (BOOL)canInitWithRequest:(NSMutableURLRequest *)request {
NSLog(@"URL|||||||||| %@",request.URL);
// NSLog(@"HTTPBody %@",[Base64 stringByEncodingData:request.HTTPBody] );//对body进行base64编码后输出
NSLog(@"HTTPBody %@",[[NSString alloc ]initWithData:request.HTTPBody encoding:NSUTF8StringEncoding] );//把body转换成str后输出
NSLog(@"Header %@",request.allHTTPHeaderFields);
return NO;
}
使用方法:
1.在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中注册:
[NSURLProtocol registerClass:[MyConnectionURLProtocol class]];
2.然后运行代码,只要有网络请求,就会调用canInitWithRequest方法