Tag: charles

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后面进行开发,则无需执行其他步骤。

无法在我的WKWebView POST请求上设置标题

我想对我的WKWebView执行一个POST请求,但是当我使用Charles来监视这个请求时,这个头部并没有被设置,所以请求失败了。 这里有什么问题? NSString *post = [NSString stringWithFormat: @"email=%@&password=%@", email, password]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *contentLength = [NSString stringWithFormat:@"%d", postData.length]; NSURL *url = [NSURL URLWithString:@"http://materik.me/endpoint"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:postData]; [request setValue:contentLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [webview loadRequest:request]; 这就是查尔斯所说的要求是这样的: POST /endpoint HTTP/1.1 Host: materik.me Content-Type: application/x-www-form-urlencoded […]