设置开发代理

开发代理是一种命令行工具,可帮助你模拟云 API 的行为和错误,以帮助构建可复原的应用。

本教程介绍如何安装和运行开发代理。

安装开发代理服务器

安装开发代理的最简单方法是使用 winget。 或者,可手动安装开发代理。

若要使用 winget 安装开发代理,请运行以下命令:

winget install Microsoft.DevProxy --silent

重要

开发代理安装程序向 PATH 添加新条目。 若要在安装后使用开发代理,必须重启命令提示符才能刷新 PATH 环境变量。

注意

若要试用最新的预览功能,请安装开发代理的 beta 版本。

若要使用 winget 安装开发代理,请运行以下命令:

winget install Microsoft.DevProxy.Beta --silent

若要运行开发代理的 beta 版本,请使用 devproxy-beta

安装开发代理的最简单方法是使用 Homebrew。 或者,您可以手动安装 Dev Proxy。

若要使用 Homebrew 安装开发代理,请运行以下命令:

brew tap dotnet/dev-proxy
brew install dev-proxy

注意

若要试用最新的预览功能,请安装开发代理的 beta 版本。

若要使用 Homebrew 安装开发代理,请运行以下命令:

brew tap dotnet/dev-proxy
brew install dev-proxy-beta

若要运行开发代理的 beta 版本,请使用 devproxy-beta

安装开发代理的最简单方法是使用安装脚本。 或者,可以手动安装 Dev Proxy。

若要使用安装脚本安装开发代理,请运行以下命令:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

如果使用 PowerShell,请运行以下命令:

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

注意

若要试用最新的预览功能,请安装开发代理的 beta 版本。

若要使用安装脚本安装开发代理,请运行以下命令:

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

如果使用 PowerShell,请运行以下命令:

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

若要运行开发代理的 beta 版本,请使用 devproxy-beta

首次启动开发代理

首次在计算机上启动开发代理时,需要执行几个步骤,以确保开发代理可以截获来自计算机的请求并成功响应。 首次运行后无需重复这些步骤。

  1. 启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按 Enter
  2. 信任证书。 开发代理安装名为 Dev Proxy CA 的证书。 一个警告随即显示。 选择 Yes 以确认要安装证书。 开发代理使用此证书解密从计算机发送的 HTTPS 流量。
  3. 允许防火墙访问。 Windows 防火墙阻止代理。 一个警告随即显示。 选择“Allow access”按钮以允许通过防火墙的流量。
  1. 启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按下 ,再输入
  2. 信任证书。 开发代理安装名为 Dev Proxy CA的证书,该证书用于解密从计算机发送的 HTTPS 流量。 一个警告随即显示。 按 键确认要信任证书。
  3. 接受传入连接。 一个警告随即显示。 选择 Allow 进行确认。
  1. 启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按下

  2. 信任证书。 开发代理使用自定义 SSL 证书解密从计算机发送的 HTTPS 流量。

    重要

    以下说明适用于 Ubuntu。 对于其他 Linux 分发版,步骤可能有所不同。

    若要安装和信任证书,请在新的命令提示符下运行以下命令:

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

命令提示符显示以下输出:

 info    8 error responses loaded from devproxy-errors.json
 info    Dev Proxy API listening on http://localhost:8897...
 info    Dev Proxy Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

默认情况下,开发代理配置为:

  • 截获对任何 JSON 占位符 API 终结点发出的请求
  • 模拟 API 错误响应和 API 节流,失败率为 50%

确认开发者代理正常工作

开发代理会截获计算机上的应用程序向向开发代理注册的 URL 发出的请求。 当开发代理检测到请求时,它会将其传递到 API(不采取任何作),或返回响应。 让我们确认开发代理是否按预期工作。

在 PowerShell 中,使用 Invoke-WebRequest cmdlet 将 GET 请求发送到 JSON 占位符 API。

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

如果使用 curl,请使用以下命令将 GET 请求发送到 JSON 占位符 API。

curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts

还可以使用 API 客户端(如 Postman)将 GET 请求发送到 https://jsonplaceholder.typicode.com/posts

在运行开发代理的命令行中,您可以看到有关请求的信息以及开发代理所执行的动作。 默认情况下,开发代理以 50% 的概率模拟错误响应。 如果请求未返回错误,则开发代理会传递它。

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 time  │ 1/31/2025 12:12:14 PM +00:00
 skip  │ RetryAfterPlugin: Request not throttled
 skip  │ GenericRandomErrorPlugin: Pass through
 api   ╰ Passed through

如果开发代理返回错误响应,则输出中会显示错误消息。

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 time  │ 1/31/2025 12:12:37 PM +00:00
 skip  │ RetryAfterPlugin: Request not throttled
 oops  ╰ 403 Forbidden

重要

如果在命令提示符中未看到任何输出,则开发代理很可能不会截获请求。 查看 常见问题 部分以获取帮助。

安全地停止开发代理

当不再需要开发代理运行时,你应始终安全地停止它。

  • Ctrl + C 安全地停止开发代理。

如果你关闭命令提示符会话,开发代理未正确注销为系统代理,你可能会遇到一些常见问题

下一步

了解如何根据需要配置 Dev Proxy。 开发代理高度灵活,支持许多不同的方案。 详细了解如何配置它以适应您特定的情景。