您的位置:首页 > 理论基础 > 计算机网络

iOS如何查看工程里添加的第三方静态库(.a或.framework)中发送的网络请求

2017-06-15 15:45 381 查看
既然能看到,肯定也可以修改、拦截。

说的就是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方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: