Jesse's Blog

i am iOSer


  • 首页

  • 关于

  • 分类

  • 归档

  • 相册

ios使用Charles抓包

发表于 2020-09-07 | 分类于 工具 | | 阅读次数:

一、安装

1.官网上下载安装包安装Charles官网

2.自行百度下载破解版安装。

二、抓包设置

1.获取PC的IP地址

在Charles菜单栏 -> Help -> Local IP Address中可以查看PC的IP地址。图示如下:

en1

也可以在Mac终端使用命令ifconfig en1查看PC的IP地址。图示如下:

ifconfig

2.配置iPhone的代理

在iPhone的设置 -> 无线局域网 -> 局域网信息(i) -> 配置代理 -> 手动中配置代理,服务器输入框中填写PC的IP地址,端口输入框中填写Charles的代理端口(一般是8888)。图示如下:

delegatenet

具体的端口可以从Charles菜单栏 -> Proxy -> Proxy Settings中查看。图示如下:

proxysetting8888

iPhone代理配置完成后,Charles会弹出连接提示框,点击Allow之后即可使用Charles对从该iPhone发出的请求进行抓包了。图示如下:

allow

目前是http链接的抓包,下面说说https的抓包

https的抓包配置

1.mac端安装证书

在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以为PC安装证书,证书可以在Mac的钥匙串中查看 ,双击证书并都设置为 始终信任图示如下:

cert

2.iPhone安装证书

在iPhone浏览器中访问http://charlesproxy.com/getssl可以下载证书并安装。此地址一般不会变化,可以在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看最新的官方证书下载地址。图示如下:

iphonecert

基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 -> 关于本机 -> 证书信任设置中启用根证书。图示如下:

certtrust

3.启动抓包SSL权限

在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下:

openssl

这样基本的抓包设置就已经完成了,可以开心的抓包了哦~

如何添加无污染的假数据

发表于 2020-09-04 | 分类于 常见问题 | | 阅读次数:

fakedata

在做项目中很多时候都要自己手动添加假数据来做测试使用,目前都是直接写到代码里面,等测试后在手动删除,一个是这样不安全,二是数据分散十分不方便,而且也确实在真实项目上线中被坑到(确实是很容易忘记呢),那么有什么好的方法能够不污染代码就能拿到假数据呢?通过网络上查阅相关文章大致有以下几种:

1.直接写到代码里(这是目前用的,污染最严重,最不安全的)

2.添加条件宏编译只在DEBUG添加下才使用(不过这种还是比较污染的)

3.利用单元测试的网络请求stub做假数据(可以使用OHHTTPStubs)

4.动态注入数据,现在比较流行的是 injectionforxcode和dyci-main两个库(这个我没试过,不过看了相关文章说是不好用)

5.自己搭建一个本地服务器还做测试,不过这个门槛搞来一些,不过感兴趣的还是可以搞一搞。

6.使用网络代理软件来拦截请求替换为本地文件(这边用到的就是大家常用的抓包工具Charles)。

现在就重点来说说第六种方法的实现,而且是最没污染的方式,以后项目中也会按这种方式进行,以保证不污染代码,避免不必要的bug事件。

这是使用的是Charles的 Map Local功能如图:

maplocal

打开以后添加网络请求的host、path或者是完整的URL都行,在LocalPath一栏里添加本地JSON文件做测试数据,然后记得勾选Enable MapLocal。

mapsetting

这样简单设置以后就能发现请求接口返回的数据都是你本地的测试数据了。每次只要改本地json文件数据,请求以后就立马更新,爽到不行啊。不过这里可能还要介绍一下如何是用Charles获取https的请求数据。我单独写一篇博文吧。over~

hexo-next主题相册功能搭建

发表于 2019-12-31 | 分类于 常见问题 | | 阅读次数:

logo

之前想说除了写点东西外,也能放些自己觉得不错的照片(自己拍的)到blog上就完美了,网上看着教程搬砖搞了一下午算是弄了个样子出来(笑哭😂)。

阅读全文 »

iOS 网络框架:如何监测网络状态变化

发表于 2019-07-31 | 分类于 翻译 | | 阅读次数:

start

原文:https://www.appcoda.com/network-framework/

翻译:by jesse


大家好,欢迎观临!所有与服务器交换数据的应用始终必须了解的一件事情:他们是否连上Intenet。离线时,通常需要改变用户体验并更新用户界面,来反映应用程序无法执行基于网络的操作。此外,即使应用程序连接到Internet,了解连接类型(如Wifi或者蜂窝网络)也是非常的有帮助。没有人愿意在不知道的情况下应用程通过用蜂窝网络去拉取大量的数据,因为这会导致用户移动数据计划的额外成本。用户应该能够根据自己的意愿开启或者关闭的功能。

阅读全文 »

What's New in Swift 5

发表于 2019-03-28 | 分类于 翻译 | | 阅读次数:

logo

原文

好消息!Swift 5 最终正式版在Xcode 10.2 中可使用。这个版本带来稳定的ABI和对一些期待已久的特性的完善。

阅读全文 »

Swift项目集成到Obc项目中的坑

发表于 2019-03-21 | 分类于 常见问题 | | 阅读次数:

logo

背景环境:

最近公司要求将手头的Swift项目集成到新的Obc项目中去,于是乎就开始了踩坑过程。

阅读全文 »

Swift中的引用与值类型

发表于 2019-02-11 | 分类于 翻译 | | 阅读次数:

原文

mylogo

通过解决实际问题,了解Swift中引用和值类型之间的微妙但重要的差异。

阅读全文 »
Jesse

Jesse

love & peace

7 日志
3 分类
GitHub Weibo
友情链接
  • 喵神
  • bang
  • limboy
  • Peak
© 2019 — 2020 Jesse
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4