Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

SmileZXLee/ZXRequestBlock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

36 Commits

Repository files navigation

ZXRequestBlock

License MIT CocoaPods CocoaPods Support

安装

通过CocoaPods安装

pod 'ZXRequestBlock'

手动导入

  • 将ZXRequestBlock拖入项目中。

导入头文件

#import "ZXRequestBlock.h"

注意

WKWebView内的请求无效!!


使用方法

拦截全局请求

[ZXRequestBlock handleRequest:^NSURLRequest *(NSURLRequest *request) {
 //拦截回调在异步线程
 NSLog(@"拦截到请求-%@",request);
 dispatch_async(dispatch_get_main_queue(), ^{
 self.blockTv.text = [self.blockTv.text stringByAppendingString:[NSString stringWithFormat:@"拦截到请求--%@\n",request]];
 });
 //在这里可以将request赋值给可变的NSURLRequest,进行一些修改(例如根据request的url过滤单独对一些请求的请求体进行修改等)然后再return,达到修改request的目的。
 return request;
}];

拦截全局请求与响应

[ZXRequestBlock handleRequest:^NSURLRequest *(NSURLRequest *request) {
 //拦截请求处理
 return request;
} responseBlock:^NSData *(NSURLResponse *response, NSData *data) {
 //拦截响应数据
 //如果为http请求,则响应为NSHTTPURLResponse,可进行强制转换
 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
 NSLog(@"拦截到响应url-%@", httpResponse.URL);
 NSLog(@"拦截到响应数据-%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
 //这里返回的data就是最终的响应数据,可以自行修改
 //可以通过[str dataUsingEncoding:NSUTF8StringEncoding];来将字符串转NSData
 return data;
}]; 

防代理抓包

禁止网络代理抓包(开启后将无法通过网络代理抓包,通过Thor,Charles,Burp等均无法抓取此App的包,且在代理网络下App内部请求不受任何影响)

[ZXRequestBlock disableHttpProxy];

允许网络代理抓包【默认为允许】

[ZXRequestBlock enableHttpProxy];

注意


HTTPDNS

启用HTTPDNS(将会直接从本地或http://119.29.29.29 进行DNS解析,是一种避免DNS劫持的措施)

[ZXRequestBlock enableHttpDns];

关闭HTTPDNS【默认为关闭】

[ZXRequestBlock disableHttpDns];

禁止/恢复所有网络请求

禁止所有网络请求

[ZXRequestBlock cancelAllRequest];

恢复所有网络请求

[ZXRequestBlock resumeAllRequest];

防抓包Demo演示

About

基于NSURLProtocol一句话实现iOS应用底层所有网络请求拦截(含网页ajax请求拦截【不支持WKWebView】)、一句话实现防抓包(使Thor,Charles,Burp等代理抓包方式全部失效,且即使开启了代理,也不影响App内部的正常请求)。包含http-dns解决方法,有效防止DNS劫持。用于分析http,https请求等

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /