> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 Fiddler 检查 Web 服务调用

> 如何使用 Fiddler Classic 作为 Web 调试代理，记录并检查设备与 XBOX Live 服务或依赖方 API 之间的 HTTP 和 HTTPS 流量。

Fiddler 是一个 Web 调试代理,可记录你的设备与 Internet 之间的所有 HTTP 和 HTTPS 流量。使用 Fiddler 记录并检查往返于 XBOX Live 服务和依赖方 Web 服务的流量,以便你可以了解并调试 Web 服务调用。Fiddler 提供多个版本。“Fiddler Classic” 是免费软件。以下部分仅指此版本。

## 对于运行在 XBOX One 或更高版本上的 Microsoft 游戏开发工具包 (GDK) 项目

有关详细信息,请参阅 [Fiddler](/build/console-features/networking/tools/fiddler-setup-networking)。

## 对于 XBOX One(或更高版本)XBOX One 软件开发工具包项目

正常操作时,通过代理进行通信的主机可能会因代理修改其通信而受到影响。这种修改可能允许玩家作弊。因此,主机不允许通过代理进行通信。要将 Fiddler 与 XBOX One(或更高版本)开发工具包一起使用,你需要在开发工具包上执行一些特殊的配置步骤,以便它使用 Fiddler 代理。

你可以从 [Fiddler 网站](https://www.telerik.com/download/fiddler) 下载 Fiddler Classic。

Fiddler 会影响主机报告的网络状态。如果你禁用运行 Fiddler 的机器的上游连接,则主机可能直到主机身份验证过期时才检测到此断开。如果你正在使用 Fiddler,请务必断开主机与运行 Fiddler 的计算机之间的连接,而不是使用 Fiddler 模拟断开连接。更好的做法是,使用网络压力工具来模拟断开连接以进行测试。

### 在开发 PC 上安装并启用 Fiddler

要安装并启用 Fiddler 以监视来自开发工具包的流量,请按以下步骤操作。

1. 按照 [Fiddler 网站](https://www.telerik.com/download/fiddler) 上的说明在开发 PC 上安装 Fiddler Classic。
2. 启动 Fiddler,并从 **Tools** 菜单中选择 **Fiddler Options**。
3. 选择 **Connections** 选项卡,并确保选中 **Allow remote computers to connect** 复选框。
4. 选择 **OK** 接受你对设置的更改。将出现一个对话框,提示必须重新启动 Fiddler 才能使更改生效,并且你可能需要手动配置防火墙。在此对话框上选择 **OK**,但暂时不要重新启动 Fiddler。
5. 配置必要的防火墙规则以允许远程计算机连接。启动 Windows 防火墙控制面板小程序。选择 **高级设置**,然后选择 **入站规则**。找到名为 **FiddlerProxy** 的规则,并向右滚动,验证该规则的每个以下设置是否出现。

| 设置               | 首选值             |
| ---------------- | --------------- |
| Name             | FiddlerProxy    |
| Group            | (不设置 Group 的值)  |
| Profile          | All             |
| Enabled          | Yes             |
| Action           | Allow           |
| Override         | No              |
| Program          | fiddler.exe 的路径 |
| LocalAddress     | Any             |
| RemoteAddress    | Any             |
| Protocol         | TCP             |
| LocalPort        | Any             |
| RemotePort       | Any             |
| AllowedUsers     | Any             |
| AllowedComputers | Any             |

6. 配置 Fiddler 以捕获并解密 HTTPS 流量。
   1. 若要获得最佳性能,请通过在按钮栏上选择 **Stream** 按钮,将 Fiddler 设置为使用流模式。
   2. 在 Fiddler 中,选择 **Tools**,然后选择 **Fiddler Options**,然后选择 **HTTPS**。
   3. 选中 **Decrypt HTTPS traffic** 复选框。如果一个消息框询问是否配置 Windows 信任 CA 证书,请选择 **Yes**。
   4. 选择 **Export Root Certificate to Desktop** 按钮。
7. 退出 Fiddler 并再次启动。

### 配置开发工具包以使用 Fiddler 作为其 Internet 代理

开发工具包上的 Fiddler 配置比以前版本中使用的方法更简单。

1. 将导出到桌面的 Fiddler 根证书复制到开发工具包,复制为 `xs:\Microsoft\Cert\FiddlerRoot.cer`。使用以下命令:`xbcp [local Fiddler Root directory]\FiddlerRoot.cer xs:\Microsoft\Cert\FiddlerRoot.cer`。
2. 创建一个名为 `ProxyAddress.txt` 的文本文件,以运行 Fiddler 的开发 PC 的 IP 地址或主机名以及 Fiddler 侦听的端口号作为文件的唯一内容。按以下格式格式化名称/IP 地址和端口:`HOST:PORT`。(默认情况下,Fiddler 使用端口 8888。) 例如,`10.124.220.250:8888` 或 `my_dev_pc.contoso.com:8888`。
3. 将该文件复制到开发工具包,复制为 `xs:\Microsoft\Fiddler\ProxyAddress.txt`。使用以下命令:`xbcp [local Proxy Address file directory]\ProxyAddress.txt xs:\Microsoft\Fiddler\ProxyAddress.txt`。
4. 通过在命令提示符中键入 `xbreboot` 重新启动开发工具包。

### 停止使用 Fiddler

若要停止使用 Fiddler 作为 Internet 代理,从而在 Fiddler 中跟踪所有开发工具包的网络流量,请重命名或删除开发工具包上的 `FiddlerRoot.cer` 文件,然后重新启动开发工具包。

### 工作原理

如果在启动时 `xs:\Microsoft\Cert\FiddlerRoot.cer` 文件和 `xs:\Microsoft\Fiddler\ProxyAddress.txt` 文件都存在,则开发工具包将自身配置为使用 `ProxyAddress.txt` 中指定的代理服务器。如果任一文件缺失,则开发工具包不会将自身配置为通过 Fiddler 代理运行。

每台安装了 Fiddler 的 PC 都使用不同的 Fiddler 根证书。如果你有多台 PC 可能为你的开发工具包提供 Fiddler 代理,则只要其中一个命名为 `FiddlerRoot.cer`,你就可以将每台 PC 的 Fiddler 根证书复制到 `xs:\Microsoft\Cert` 目录。

开发工具包在对 Fiddler 代理进行身份验证时会检查 Cert 目录中的所有证书。只要证书存在于 Cert 目录中,开发工具包就会使用 `ProxyAddress.txt` 中地址所对应的 PC 上的 Fiddler 实例。

## 对于 XBOX One(或更高版本)UWP 项目

按照 UWP 文档中 <a href="https://learn.microsoft.com/en-us/windows/uwp/xbox-apps/uwp-fiddler" target="_blank">在针对 UWP 进行开发时如何将 Fiddler 与 XBOX One 一起使用 ⬀</a> 一文中的步骤操作。

## 对于 Windows UWP PC 应用

1. 请确保当前用户位于 PC 上的管理员组中。
2. 从 [https://www.telerik.com/fiddler](https://www.telerik.com/fiddler) 下载 Fiddler。
3. 请确保选择 **Built for .NET 4** 的版本。
4. 安装完成后,转到 **Tools** > **Fiddler Options**,并启用 **Capture HTTPS CONNECTs** 和 **Decrypt HTTPS traffic**。运行时和 XBOX 服务之间的所有通信都使用 SSL 加密。如果没有此选项,你将看不到任何有用的东西。接受 Fiddler 弹出的所有对话框(共有五个对话框,包括 UAC)。
5. 转到 **WinConfig**,选择 **Exempt All**,然后 **Save Changes**。否则,Fiddler 无法与应用商店应用配合工作。
6. 现在,如果你运行你的应用,你会看到应用、运行时和 XBOX 服务之间的请求和响应。

若要调试 UWP OS 级别的调用(这通常不是必需的,但在调试登录和游戏中事件时可能很有用),请使用以下命令配置 Fiddler 以捕获 WinHTTP 流量:

```cpp theme={null}
    netsh winhttp set proxy 127.0.0.1:8888 "<-loopback>"
```

端口号必须与 Fiddler 中 **Tools** | **Options** | **Connections** 选项卡上配置的端口匹配。默认端口号为 8888。

使用以下命令撤销此配置:

```cpp theme={null}
    netsh winhttp reset proxy
```


## Related topics

- [XBOX 服务跟踪分析器 (XblTraceAnalyzer.exe)](/zh-CN/tools/tools-services/live-trace-analyzer.md)
- [XBOX 服务开发工具](/zh-CN/tools/tools-services/live-tools.md)
- [XBOX 服务工具](/zh-CN/tools/tools-services/live-tools-nav.md)
- [Windows PC 上的 Fiddler](/zh-CN/build/console-features/networking/tools/fiddler-pc.md)
- [调用 XBOX 服务的最佳实践](/zh-CN/services/xbox-services/develop/best-practices/live-best-practices-calling-xbl.md)
