登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

查看: 254|回复: 6

iOS开发――使用Charles进行http网络抓包详解,抓包工具charles

[复制链接]

284

主题

622

帖子

2281

金钱

手工艺人

发表于 2018-1-9 15:57:30 | 显示全部楼层 |阅读模式

        

        我在之前一篇博客《网络抓包工具Charles的介绍与使用》中简单介绍了Charles的安装破解,以及进行简单的Charles抓包配置的介绍。今天我们来详细介绍下使用Charles进行http抓包,关于https抓包,我将会在另一篇博客中介绍。

        (1)http抓包的配置,请参考《网络抓包工具Charles的介绍与使用》这篇博客。

        (2)为了使抓包的结果清晰,便于调试,我写了一个简单的网络请求,通过点击按钮请求查询号码归属地,代码如下:

        

[Java] 查看源文件 复制代码
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

}

- (IBAction)networkRequestPressed:(id)sender {

 NSString *urlAsString = [@"https://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=18888888888&userId=" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

  NSURL *url = [NSURL URLWithString:urlAsString];
  NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
  [urlRequest setTimeoutInterval:30];
  [urlRequest setHTTPMethod:@"GET"];

  //推荐使用这种请求方法;
  NSURLSession *session = [NSURLSession sharedSession];

  __block  NSString *result = @"";
  NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

    if (!error) {
      //没有错误,返回正确;
      result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
      NSLog(@"返回正确:%@",result);

    }else{
      //出现错误;
      NSLog(@"错误信息:%@",error);
    }

  }];

  [dataTask resume];

}

@end


(3)点击按钮进行网络请求后,返回结果如下:

        

        

        

        (4)下面开始进行抓包(如何配置请参考:网络抓包工具Charles的介绍与使用)。注意哦:需要在真机上测试!进行网络请求后,Charles输出如下:

        

        

        我现在对上面的http抓包结果进行详解。

        【1】

        

        左侧是显示结构:Structure是树状结构显示,Sequence是水平结构显示。两者基本类似,我以树状结构来进行介绍。左侧的树状结构是我进行网络请求的url链接,每一个层级表示了以“/”隔开的子域名。通过上述的代码也可以看到我GET请求的url链接是:https://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=18888888888&userId= ;与树状结构中显示的一致。

        【2】

        

        

        右侧是详情页,其中第一个Overview是概览。我对一些字段进行介绍:

        (1)URL:我进行网络请求的链接;

        (2)Status:当前状态,complete表示请求完成;

        (3)Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同;

        (4)Protocol:使用的协议;

        (5)Method:请求方式,如GET请求,POST请求等;

        (6)Kept Alive:判断当前是否正在链接(活跃);

        (7)Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;

        (8)Client Address:客户端的IP地址;

        (9)Remote Address:远程服务器的IP;

        

        Timing:

        (10)Request Start Time:请求开始的时间;

        (11)Request End Time:请求结束的时间;

        (12)Response Start Time:返回开始的时间;

        (13)Response End Time:返回结束的时间;

        

        Size:

        (14)Request Header :请求的头部大小;

        (15)Request Header:返回的头部大小;

        (16)Request : 请求发送的大小;

        (17)Response:返回数据的大小;

        (18)Total:所有数据大小;

        (19)Request Compression :请求压缩;

        (20)Response Compression: 返回压缩;

        

        【3】

        

        

        第二个页面是关于请求发送的。下面的Headers,Query String,Raw。

        (1)Headers:发送请求的头部信息;

        (2)Query String:发送参数列表;

        (3)Raw:发送的原生数据,包括了头部和参数;

        

        【4】

        

        

[font=arial, 微软雅黑, sans-seri

23

主题

7155

帖子

1046

金钱

iOS大神

Rank: 6Rank: 6

分享大神

发表于 2018-1-9 15:58:58 | 显示全部楼层
学习...学习...

0

主题

7150

帖子

-533

金钱

限制会员

发表于 2018-1-9 16:01:36 | 显示全部楼层
不错不错,楼主辛苦了。。。

21

主题

7173

帖子

2738

金钱

手工艺人

发表于 2018-1-9 16:05:28 | 显示全部楼层
相当不错,感谢无私分享精神!

16

主题

7191

帖子

1526

金钱

手工艺人

发表于 2018-1-9 16:10:11 | 显示全部楼层
虽不明,但觉厉...

15

主题

7154

帖子

1754

金钱

手工艺人

发表于 2018-1-9 16:16:27 | 显示全部楼层
感谢分享,code4app有你更精彩

21

主题

7206

帖子

2696

金钱

手工艺人

发表于 2018-1-9 16:26:36 | 显示全部楼层
感谢大神分享,必须顶!
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表