使您的发展更好。 使用代理。
在本文中,我想描述如何使用Charles桌面应用程序设置代理。 我相信你们中的许多人都使用API或使用一些REST服务。 如果您还没有听说过代理,我相信这篇文章中的知识将对您的未来发展有用。 以下示例涉及iOS环境以及在macOS系统上进行配置。
什么是代理?
为了告诉您什么是代理服务器,我使用在Charles文档中找到的定义
HTTP代理是一种服务器,它从您的Web浏览器接收请求,然后代表您向Internet发送请求。 然后将结果返回到您的浏览器。
因此,Charles应用程序是一种监视器,用于检查您的网络流量,代表您执行所有请求并将响应返回给您。
我真的需要吗?
是! 当您创建使用某些API的应用程序时,它可能会对您有所帮助。 您将可以查看服务器的请求和响应。 此外,Charles应用程序允许您为端点设置断点,并允许您编辑请求或响应正文,因此您可以为应用程序测试各种方案。 同样,您可以看到您的应用程序确实有多少请求。
如何配置Charles?
首先,转到Charles网站并下载安装文件。 安装过程完成后,您将看到应用程序的主屏幕。 开始时,我建议选择顶部的“ Sequence
选项卡。
一段时间后,您应该会在Mac上看到所有您执行的请求。 现在,我们有两种方法来配置Charles。 第一种方法是为iOS Simulator配置它。 第二个选项是为iOS设备配置Charles。
iOS Simluator配置
单击帮助-> SSL代理->在iOS Simualator中安装Charles Root证书。
您将看到提示:
然后单击确定,并确保您应该重新启动模拟器。 完成上述步骤后,Charles便已配置好并可以与您的模拟器一起使用。
iOS设备配置
在设备的Wi-Fi连接设置中,选择与Mac使用的连接,然后点击。 然后向下滑动,然后选择“代理设置为手动”。
在IP字段中,请输入您Mac Wi-Fi使用的相同IP地址。 在port
字段中,输入8888
。
要在Mac上查看Wi-Fi的IP地址,请执行以下操作:
在Mac上的wifi图标上用选项按钮右键单击
然后在您的iOS设备上访问http://www.charlesproxy.com/getssl/并安装证书。 我建议通过Safari进行操作,因为它会将您从URL重定向到iOS设备上的“证书设置”。 然后只需安装证书。
安装过程完成后,您将能够在Mac上的Charles应用程序中查看来自iOS设备的所有请求。
好的,所有配置都可以,但是如何使用呢?
配置流程完成后,您将看到Charles主窗口以及您的网络数据。 出于这篇文章的目的,我编写了一个简单的应用程序,该应用程序使用了免费的rest API https://www.freegeoip.net/
。 该API为我们提供了有关任何域的一些地理信息。 例如:
https://www.freegeoip.net/json/github.com返回有关github.com
网站的地理信息。
现在,让我们从iOS Simulator / iPhone调用https://www.freegeoip.net/json/twitter.com
。 在Charles主窗口中,我们也可以看到已发出请求,并收到了回复。 没有有关请求参数,响应代码等的信息。
让我们来看看。
概述标签
在“ Overview
选项卡中,我们可以看到有关用于此调用的协议SSL的信息,您也可以看到请求时间以及请求和响应的大小。
好吧,让我们看一下请求和响应
不幸的是,对于查尔斯来说,两者都不可读。 这是因为请求是安全的,并且使用https
。 因此,我们需要通知Charles该域正在使用SSL
来查看请求的详细信息。
添加代理SSL
有两种方法可以做到这一点。
首先,您可以单击Proxy settings
,然后单击将附加主机Add
到列表中。 在Host
字段中,输入服务器的主机地址。 在我的示例中,将是www.freegeoip.net
。
在端口字段中输入443
。 为什么是443
? 因为443
是HTTPS连接使用的默认端口。
确保已选中“ Enable Proxy SSL
复选框。 添加主机后,它应如下所示:
第二种方法要简单得多,只需右键单击请求并选择Enable SSL Proxying
。
使用SSL代理请求
在为我们的主机服务器添加SSL代理后,再次执行请求。
如您现在所见,我们可以看到请求的RC
(响应代码)。 这是200(确定)。 我们也知道我们的请求是GET
类型。 让我们看一下请求和响应主体。
在请求正文中,我们具有有关请求类型,语言和编码的一些信息。 另外,您可以在此处找到有关Cookies的一些信息。
查尔斯可以读取响应正文。 选择JSON text
标签后,我们可以看到格式化的JSON字符串。 有关响应的所有信息都存储在RAW
选项卡中。 您可以在此处找到有关响应代码,内容类型,服务器,编码等的信息。
现在最重要的是-响应主体:
调试
Charles的妙处在于,该应用程序允许您以与XCode和其他许多IDE断点相同的方式调试请求/响应。 但是在这里,您将断点放在请求上,而不是在代码行上。
要设置断点,只需右键单击要调试的请求的行,然后选择“ Breakpoints
选项。
现在,再次发出请求,您将看到Breakpoint-Window。
使用Overview
和Edit Request
选项卡。 在这里,您可以编辑请求正文,查询字符串参数,请求方法,cookie,标头,甚至可以选择HTTP版本。 编辑请求后,只需单击底部的Execute
。
当Charles收到响应后执行后,我们应该再次看到Breakpoint-Window,现在我们可以编辑响应了!
通过编辑响应,我的意思是您可以编辑响应标题和响应正文。 您还可以检查请求的正文和概述。 编辑响应后,只需单击执行按钮。 完成该步骤后,编辑后的响应将发送到我们的设备/模拟器。
注意:请记住,在不再需要断点时将其关闭,因为如果不这样做,则断点将在每次触发请求时运行。
结论
Charles应用程序是一个很棒的工具,具有许多功能。 在我的文章中,我重点介绍了iOS环境,但您也可以为Android Emulator或Android设备配置代理。 我描述了我使用Charles应用程序时最常用的用法。 综上所述,如果您使用某些Web服务器,则该应用程序应该放在开发工具目录中。
这篇文章与我的个人 博客 交叉发布了