使用 Fiddler 检查 Web 服务调用
Fiddler 是一种 Web 调试代理,用于记录您的设备和 Internet 之间的所有 HTTP 和 HTTPS 流量。 使用 Fiddler 记录和检查与 Xbox Live 服务和依赖方 Web 服务之间的流量,以了解和调试 Web 服务调用。 Fiddler 有多个可用版本。 “Fiddler Classic”是免费软件,以下部分仅指此版本。
对于在 Xbox One 或更高版本上运行的 Microsoft 游戏开发工具包 (GDK) 项目
有关详细信息,请参阅 Fiddler。
适用于 Xbox One (或更高版本) 的 Xbox One 软件开发工具包项目
在正常操作中,通过代理通信的主机面临通信被代理修改的风险,从而可能使玩家有机会作弊。 因此,主机设计为不允许通过代理通信。 要将 Fiddler 用于 Xbox One(或更高版本)开发工具包,你需要对开发工具包执行某些特殊配置步骤,以便允许它使用 Fiddler 代理。
可从 Fiddler 网站下载 Fiddler Classic。
Fiddler 可能影响主机所报告的网络状态。 如果从运行 Fiddler 的计算机禁用上游连接,则在主机的身份验证过期前,主机可能无法检测到此断开连接。 如果您使用的是 Fiddler,请确保断开主机与运行 Fiddler 的计算机之间的连接,而不是使用 Fiddler 模拟断开连接。 更好的是,使用网络压力工具来模拟断开连接,以便进行测试。
在开发电脑上安装并启用 Fiddler
要安装并启用 Fiddler 以便从开发工具包监视流量,请按照以下步骤操作。
按照 Fiddler 网站上的指示在开发电脑上安装 Fiddler Classic。
启动 Fiddler,然后从“工具”菜单中选择“Fiddler 选项”。
选择“连接”选项卡,并确保“允许远程计算机连接”复选框处于选中状态。
单击“确定”来接受对设置的更改。 您将看到一个显示必须重启 Fiddler 才能使更改生效以及您可能需要手动配置防火墙的对话框。 单击此对话框上的“确定”,但不要重启 Fiddler。
配置必要的防火墙规则来允许远程计算机连接。 启动 Windows 防火墙控制面板小程序。 单击“高级设置”,然后单击“入站规则”。 找到名为“FiddlerProxy”的规则并滚动到右侧,从而验证是否为该规则显示以下每项设置。
设置 | 首选值 |
---|---|
名称 | FiddlerProxy |
组 | (不要为组设置值) |
档案 | 全部 |
已启用 | 是 |
操作 | 允许 |
替代 | 否 |
程序 | fiddler.exe 的路径 |
LocalAddress | 任意 |
RemoteAddress | 任意 |
协议 | TCP |
LocalPort | 任意 |
RemotePort | 任意 |
AllowedUsers | 任意 |
AllowedComputers | 任意 |
将 Fiddler 配置为捕获和解密 HTTPS 流量。
- 要实现最佳性能,请通过单击按钮栏上的“流”按钮来将 Fiddler设置为使用流模式。
- 在 Fiddler 中,选择“工具”,然后再依次选择“Fiddler 选项”和“HTTPS”。
- 选中“解密 HTTPS 流量”复选框。 如果消息框询问是否将 Windows 配置为信任 CA 证书,请单击“是”。
- 单击“将根证书导出到桌面”按钮。
退出 Fiddler 并重启。
将开发工具包配置为使用 Fiddler 作为其 Internet 代理
已通过上一版本中使用的方法简化了开发工具包中的 Fiddler 配置。
将您导出到桌面的 Fiddler 根证书作为
xs:\Microsoft\Cert\FiddlerRoot.cer
复制到开发工具包。 可以使用以下命令:xbcp [local Fiddler Root directory]\FiddlerRoot.cer xs:\Microsoft\Cert\FiddlerRoot.cer
创建一个名为
ProxyAddress.txt
的文本文件,使用运行 Fiddler 的开发电脑的 IP 地址或主机名称以及 Fiddler 在其中仅侦听文件中文件的端口号。 将名称/IP 地址和端口设置为以下格式:“主机:端口”。 (默认情况下,Fiddler 使用端口 8888。)例如,“10.124.220.250:8888”或“my_dev_pc.contoso.com:8888”。将该文件作为
xs:\Microsoft\Fiddler\ProxyAddress.txt
复制到开发工具包。 为此,您可以使用以下命令:xbcp [local Proxy Address file directory]\ProxyAddress.txt xs:\Microsoft\Fiddler\ProxyAddress.txt
通过将
xbreboot
键入命令提示符中来重启开发工具包。
停止使用 Fiddler
要停止将 Fiddler 用作 Internet 代理,以此跟踪 Fiddler 中所有开发工具包的网络流量,只需重命名或删除开发工具包中的 FiddlerRoot.cer
文件,然后重启开发工具包。
如何操作
如果启动时 xs:\Microsoft\Cert\FiddlerRoot.cer
文件和 xs:\Microsoft\Fiddler\ProxyAddress.txt
文件同时存在,会导致开发工具包将自身配置为使用 ProxyAddress.txt
中指定的代理服务器。
如果任一文件缺失,则开发工具包将不会将自身配置为通过 Fiddler 代理工作。
每台安装了 Fiddler 的电脑都使用不同的 Fiddler 根证书。
如果您拥有多台可用于为开发工具包提供 Fiddler 代理的电脑,则可以将每台电脑的 Fiddler 根证书复制到 xs:\Microsoft\Cert
目录,只要其中一个的名称为 FiddlerRoot.cer
。
对 Fiddler 代理进行身份验证时,将会检查 Cert 目录中的所有证书。
电脑地址位于 ProxyAddress.txt
中的 Fiddler 实例将用作代理,前提是其证书位于 Cert 目录中。
对于 Xbox One(或更高版本)UWP 项目
按照 UWP 文档中 针对 UWP⬀开发时如何将 Fiddler 用于 Xbox One 一文中的步骤进行操作。
适用于 Windows UWP 电脑应用
确保当前用户位于电脑上的管理员组中。
从 https://www.telerik.com/fiddler 下载 Fiddler。
确保选择为.NET 4 构建的版本。
安装完成后,转至“工具”->“Fiddler”选项并启用“捕获 HTTPS CONNECT 并解密 HTTPS 流量”。 运行时与 Xbox 服务之间的所有通信将使用 SSL 加密。 若不选择此选项,你将看不到任何实用的内容。 接受 Fiddler 弹出的所有对话(应该有 5 个对话,包括 UAC)。
转到“WinConfig”、“全部豁免”和“保存更改”。 否则,Fiddler 无法与 Store 应用配合使用。
现在,如果运行应用,您应该可以看到应用、运行时与 Xbox 服务之间的请求/响应。
要调试 UWP 操作系统级别调用(通常不需要,但对调试登录和游戏内事件有帮助),您需要将 Fiddler 配置为捕获 WinHTTP 流量。 可按以下方式完成此操作:
netsh winhttp set proxy 127.0.0.1:8888 "<-loopback>"
其中,端口 8888 匹配您在 Fiddlers“工具”|“选项”|“连接”选项卡上配置的端口(默认为 8888)。
要将其撤消,请执行以下操作:
netsh winhttp reset proxy