Tag: Charles Proxy

Charles Proxy入门

我从事iOS开发(专业)已有6年以上。 我为他人编写的每个iOS应用程序中都有一个常量。 它们都与Web服务进行通信以从iOS应用程序/客户端读取和写入数据。 甚至我个人的个人项目应用程序也从设备上完全隔离的状态转变为与Web服务的通信。 如果您在与Web服务进行通信的任何类型的移动客户端上工作,则应学习如何使用Charles Proxy。 我使用此工具已有多年,发现它绝对不可或缺。 这篇文章将为在一个简单的iOS项目中使用Charles提供入门。 我写了一个非常简单的项目,将从Unsplash加载“策展的图像”。 您可以从GitHub获取源代码。 这篇文章中的所有设置都是针对iOS模拟器的。 但是,设置Charles与其他设备(tvOS或真实的iOS / tvOS设备)对话非常容易。 我已经编写了单独的指南来设置Apple TV设备的Charles Proxy,您可以在这里找到它:在Apple TV(tvOS)上设置Charles Proxy。 请注意:我在此处概述说明的方法并不是唯一的处理方法。 随意自行探索应用程序。 另外请注意:我已收录了简短的YouTube视频,其中显示了以下说明的步骤。 一些说明可能会很复杂,YouTube视频应该会有所帮助。 Charles代理详细信息 在开始之前,这里是有关Charles Proxy的一些详细信息。 直接从开发者的网站上: Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。 这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。 网站:http://www.charlesproxy.com 费用:50美元 免费试用? 是的,持续30天 Charles Proxy概述 Charles Proxy是一个HTTP代理/监视应用程序。 它允许您监视来自各种来源的Web流量,包括macOS / iOS / tvOS设备和iOS / tvOS模拟器。 这意味着您不必编写这样的临时代码: print(“JSON Response: \(JSON)”) 要么 NSLog(@”JSON Response: %@”, […]

Charles Proxy-主管代理工具

作为软件开发人员,对不同数据集的代码进行单元测试非常重要。 我需要在运行时更改模型对象或更新服务器。 如果我做错了事,这两种方法都可能造成麻烦。 一旦从设备传递了请求,我们通常就没有太多的控制权,而每次在代码中使用不同的值对其进行更改都不是一件容易的事。 Charles Proxy,为我节省了时间,并帮助您处理许多请求和响应 。 术语“互联网”的兄弟姐妹 深入了解Charles代理有助于修改充当互联网兄弟姐妹的术语。 以下是关于此的小注释。 该注释将帮助您解决互联网上最常见的问题:“互联网如何工作?” 。 连接到互联网的所有内容都将具有IP地址 。 IP地址不是人类可读的格式,因此引入了域名 。 在DNS服务器中找到与该域名对应的IP地址,该服务器分为(1)递归解析器,(2)根名称服务器,(3)TLD(顶级域名)名称服务器和(4)权威名称服务器。 记住顺序,因为这是完成搜索相应IP地址的方式 。 路由器中的NDL (网络转换设备)将专用IP地址转换为公用IP地址 。 互联网中的信息以数据包的形式传递。 当数据包向目的地移动时,成千上万的路由器充当中间设备,并将自己的IP地址添加到数据包中。 一旦到达服务器并向后导航,路由器便会将其IP地址从数据包中解包。 什么是代理? 代理人,代表他人的权力。 代理服务器或软件充当端点设备和Internet之间的中介。 请求和响应通过代理传递,因此我们可以查看或记录设备的流量。 代理服务器还有助于缓存数据,阻止恶意流量。 这是阻止我们进入YouTube和Facebook的罪魁祸首。 由于它能够缓存数据,因此可以避免再次访问服务器。 安装 您可以从以下链接下载LINUX , Mac OS和Windows的代理: 下载Charles * Charles Web调试代理的免费试用版 Charles Web调试代理–官方网站 www.charlesproxy.com 查尔斯 代理软件在我们的系统中通过简单的UI和命令行工具运行。 查尔斯代理包含两种视图结构和顺序。 结构有助于分隔不同的主机URL,顺序有助于我们根据时间,持续时间,大小等确定每个呼叫的顺序。 Charles代理的有用功能: 如果要观看Charles代理的每个功能如何工作,可以直接单击此链接。 了解Charles代理的功能有什么好处? 一旦您了解了Charles,使用诸如Fiddler之类的其他代理软件就不会很复杂。 它节省了我的时间并帮助提高了生产率,我希望它能为您做同样的事情。 观察HTTP流量 一旦您在同一网络中连接了Charles代理和设备并在设备中更改了代理地址,Charles将显示通过它的每个请求和响应。 […]

设置Charles Proxy并使其在VPN之后运行

Charles Proxy是移动开发人员工具包中最常用的工具之一。 这里简要介绍了使其在企业VPN设置中运行所需的步骤。 我在Mac上使用Charles代理版本4.1.2。 从这里下载并安装。 授予必要的权限。 2.确保在您的网络设置中,自动代理未打开。 3.要记住的一点是,任何与网络设置有关的更改都应在运行Charles之前进行。 另外,请确保仅在运行Charles后才运行iOS模拟器。 4.运行Charles并安装iOS模拟器的根证书。 5.成功后,您应该会看到: 6.现在,您可以看到来自Mac机器的所有流量。 有两种方法可以隔离UI中的数据。 它们是结构和序列。 在顺序模式下,您可以应用过滤器并仅查看您感兴趣的流量数据。 7.结构视图 8.应用了过滤器的序列视图 9.顺便说一句,最好在UI中将请求和响应分开。 10.运行Xcode项目,并确定到您感兴趣的域的流量。首先,您将看到如下所示的加密内容。 我刚刚在iOS模拟器的Safari应用中打开了apple.com。 11.在上面的示例中,我们对http://www.apple.com感兴趣。 为了以纯文本格式显示内容,我们需要为此域启用“ SSL代理”。 有多种方法可以做到这一点。 最简单的方法是在“结构视图”中右键单击域,然后从菜单中选择选项“ SSL代理” 12.您应该在所有域旁边看到一个蓝色的地球状图标,其内容已被Charles解密或读取。 13.完成后,您可以用纯文本格式查看所有流量 您还可以针对特定域设置断点,并根据需要编辑请求/响应。根据我的经验,如果要在VPN后面进行开发,则无需执行其他步骤。

iOS开发人员的Charles技巧和窍门:简介

注意:本文的几乎所有内容都适用于iOS,Android,Web或您使用的任何技术平台。 几年前,作为iOS Developer,如果遇到与某些奇怪的网络请求/响应有关的错误,我会陷入困境。 说实话。 Xcode中没有合适的工具来可视化或调试网络调用,因此我过去常常通过在各处添加断点,在各处进行硬编码和打印响应来对其进行调试,并最终找到错误后,我开始回滚我在我所做的所有这些讨厌的更改网络层。 我曾经认为,如果像我以前使用Chrome Dev Tools时(我以前是一名Web开发人员)那样,已经有了一种可视化网络请求的简单方法,就可以避免所有这些麻烦。 多亏了飞扬的意大利面条怪物,一些同事向我介绍了Charles Proxy,它是一款超赞的工具,可让我的应用程序中的所有网络活动都成为“黑魔法”,因此我将其纳入了我的日常堆叠工具。 这篇文章是我日常使用的最有用的Charles功能的简单汇编。 我希望这可以帮助某人摆脱网络调试的麻烦。 查尔斯是什么,为什么如此神奇? ✨ Charles Proxy是一个Java程序,它充当您的应用程序与Internet之间的中间人,侦听所有网络请求和响应,使您可以可视化和操纵响应/请求数据,从而使用某些特定响应mock模拟您的应用程序。 作为世界上所有美好的事物,Charles Proxy并非免费free。 但是您可以获得30天的试用期。 试用结束后,Charles在关机前只会运行30分钟,因此您可以重新启动它,然后再等待30分钟或付款。 我真的建议您说服您的团队购买或自己获得许可证。 安装 查尔斯准备好了,这只是个小孩子,只需下载最新版本即可 。 Charles支持macOS,Windows和Linux。 在本文中,我仅介绍了macOS的安装,但对于Windows或Linux,应该类似。 下载完成后,双击.dmg文件并将Charles图标拖到Applications文件夹中,然后启动它。 第一次,Charles会请求权限来配置网络设置并检查与您的计算机之间的所有网络事件。 只需Grant Privileges和Charles,它就快准备好了。 此时,Charles可以记录您的计算机发出的任何请求,但无权查看HTTPS下安全通信的内容。 请记住,HTTPS加密并保护我们的敏感数据不受代理服务器和其他中间件的侵害。 但是在这种情况下,我们希望Charles监听我们的消息,因此我们需要配置一些SSL证书。 设置模拟器的SSL证书 首先,退出您的iOS模拟器。 启动Charles并转到帮助>选择SSL代理>在iOS Simulators中安装Charles Root证书 。 当您再次启动时,iOS Simulator将安装在所有模拟器中。 在设备中设置SSL证书并连接到Charles 这有点棘手: 转到“ 代理”>“代理设置” ,选择一个端口,启用“ 透明HTTP代理” ,然后按“ 确定” 。 转到“ 帮助”>“ SSL代理”>“在移动设备或远程浏览器上安装Charles Root证书” ,选择此选项,将显示如下所示的弹出窗口,并带有您在上一步中选择的本地IP和端口。 […]

用Charles Proxy骇客

今天,让我们谈谈“中间人”方法, 该方法允许任何人跟踪智能手机或计算机上的浏览器发送和接收的所有流量。 有时,您无法将所需的数据放入应用程序中,但是如果您可以在将浏览器或应用程序接收到的内容发送到智能手机之前对其进行修改,则可以使用一种非常方便的方法来测试点播数据。 这就是我将在本文中通过实际示例进行解释的内容。 我将重点介绍在台式机浏览器中进行测试,以及Android和iOS应用程序中的测试。 为此,我将使用Charles Proxy。 稍后,在另一篇博客文章中,我可能会写关于mitmproxy的信息,它是免费的开放源代码,但使用起来不太方便。 因此,在本文中,我将详细介绍如何在MacBook,台式机浏览器和iPhone上使用Charles Proxy。 中间代理人 什么是Charles Proxy? Charles Proxy是HTTP和HTTPS的交互式中间人代理。 它使任何人都可以查看其一台计算机与Internet之间的所有HTTP和SSL / HTTPS通信。 这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。 也可以在将请求发送到服务器之前对其进行修改,或者,这就是我将在此处描述的,收到的响应会带来很多机会。 如何安装Charles Charles可用于Windows,MacOS和Linux。 只需在“下载”页面上下载所需的那个,然后按照说明进行即可。 您将获得一个试用版,因为Charles不是免费的(而mitmproxy是免费的),但这是值得的。 我必须承认我首先使用了mitmproxy,但是Charles的使用方式更简单,如果您确实需要代理,则可能不后悔这笔费用。 如何捕捉事物……? …将显示在桌面浏览器中 如果要从浏览器捕获数据包,则必须将其配置为使用Charles。 默认情况下,它配置为使用端口8888,但是您可以通过打开“代理设置”来为所需的端口进行修改。 您可以先打开“帮助”,然后打开“本地IP地址”,以了解访问浏览器需要使用哪些IP,但是大多数时候,您可能会使用localhost(127.0.0.1)在本地进行操作。 让我们配置浏览器。 转到代理设置,然后添加127.0.0.1作为代理地址,并添加8888作为端口。 现在,您将捕获所有请求和响应的数据包,但仅适用于http服务器。 例如,如果Charles捕获了https://www.lyontesting.fr,您将看到此响应,但阅读起来不太舒服。 只需右键单击该请求,然后选择“启用SSL代理”。 然后在浏览器中刷新页面,您会发现结果并不理想。 这是因为www.lyontesting.fr页面被重定向到lyontesting.fr。 转到“代理/ SSL代理设置”,并调整位置主机,以匹配您要捕获的所有情况。 有趣的是,您可以修改将发送到浏览器的响应。 为此,只需添加这样的断点。 在“代理/断点设置…”中,选择“启用断点”,使用host = lyontesting.fr添加一个检测POST请求的断点,然后选择“响应”。 现在再次刷新页面,响应将不会发送到浏览器,正在等待您的批准。 在“编辑回复”标签中,您可以修改html。 在这里,我将“里昂测试”替换为“世界测试”。 结果显示在浏览器中。 现在,您可能认为可以使用浏览器的开发工具非常简单地完成此操作,并且您是对的。 但是这些简单的步骤向您展示了Charles和代理的基础知识。 这些东西也可以用于智能手机应用程序,这就是我们现在所看到的。 …将在智能手机应用中使用 Charles Proxy现在也作为iOS应用程序提供。 使用它,您可以指定要在记录中包括或排除的主机名(例如,仅对应用程序服务器的请求),与SSL代理相同。 […]