开发代理是一种命令行工具,可帮助你模拟云 API 的行为和错误,以帮助构建可复原的应用。
本教程介绍如何安装和运行开发代理。
安装开发代理服务器
安装开发代理的最简单方法是使用 winget。 或者,可手动安装开发代理。
自动
手动
若要使用 winget 安装开发代理,请运行以下命令:
winget install DevProxy.DevProxy --silent
重要
开发代理安装程序向 PATH 添加新条目。 若要在安装后使用开发代理,必须重启命令提示符才能刷新 PATH 环境变量。
下载 最新版本并将文件解压缩到文件夹中。 在本教程中,我们假设将文件提取到位于主目录中的名为 devproxy 的文件夹。
若要从任何目录启动开发代理,请将其安装文件夹位置添加到 PATH。
打开 Start 菜单。
在搜索框中输入 Edit environment variables for your account。 在列表中选择结果以打开 Environment Variables 对话框。
在“User variables for 
在 Edit environment variable 对话框中,选择 New 按钮。
在新行中输入 %USERPROFILE%\devproxy 并选择 OK。
若要确认更改,请选择 OK。
注意
若要试用最新的预览功能,请安装开发代理的 beta 版本。
自动
手动
若要使用 winget 安装开发代理,请运行以下命令:
winget install DevProxy.DevProxy.Beta --silent
下载 最新的 beta 版本并将文件提取到文件夹中。 按照前面所述执行手动设置步骤。
若要运行开发代理的 beta 版本,请使用 devproxy-beta
安装开发代理的最简单方法是使用 Homebrew。 或者,您可以手动安装 Dev Proxy。
自动
手动
若要使用 Homebrew 安装开发代理,请运行以下命令:
brew tap dotnet/dev-proxy
brew install dev-proxy
下载 最新版本并将文件解压缩到文件夹中。 在本教程中,我们假设将文件提取到位于主目录中的名为 devproxy 的文件夹。
若要从任何目录启动开发代理,请将其安装文件夹位置添加到 PATH。
以下步骤演示如何在使用 zsh shell 时将代理添加到 PATH。 根据使用的 shell,配置文件可能有所不同。
在文本编辑器中打开 shell 配置文件 >~/.zshrc。
使用代理 >export PATH=".:$PATH:$HOME/devproxy"的位置更新 PATH 环境变量。
重新加载配置文件 >source ~/.zshrc。
注意
若要试用最新的预览功能,请安装开发代理的 beta 版本。
自动
手动
若要使用 Homebrew 安装开发代理,请运行以下命令:
brew tap dotnet/dev-proxy
brew install dev-proxy-beta
下载 最新的 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
下载 最新版本并将文件解压缩到文件夹中。 在本教程中,我们假设将文件提取到位于主目录中的名为 devproxy 的文件夹。
若要从任何目录启动开发代理,请将其安装文件夹位置添加到 PATH。
以下步骤演示如何在使用 bash shell 时将代理添加到 PATH。 根据使用的 shell,配置文件可能有所不同。
在文本编辑器中打开 shell 配置文件 >~/.bashrc。
使用代理 >export PATH=".:$PATH:$HOME/devproxy"的位置更新 PATH 环境变量。
重新加载配置文件 >source ~/.bashrc。
注意
若要试用最新的预览功能,请安装开发代理的 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 版本并将文件提取到文件夹中。 按照前面所述执行手动设置步骤。
若要运行开发代理的 beta 版本,请使用 devproxy-beta
首次启动开发代理
首次在计算机上启动开发代理时,需要执行几个步骤,以确保开发代理可以截获来自计算机的请求并成功响应。 首次运行后无需重复这些步骤。
启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按 Enter。
信任证书。 开发代理安装名为 Dev Proxy CA 的证书。 一个警告随即显示。 选择 Yes 以确认要安装证书。 开发代理使用此证书解密从计算机发送的 HTTPS 流量。
允许防火墙访问。 Windows 防火墙阻止代理。 一个警告随即显示。 选择“Allow access”按钮以允许通过防火墙的流量。
启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按下 ,再输入。
信任证书。 开发代理安装名为 Dev Proxy CA的证书,该证书用于解密从计算机发送的 HTTPS 流量。 一个警告随即显示。 按 和 键确认要信任证书。
接受传入连接。 一个警告随即显示。 选择 Allow 进行确认。
启动开发代理。 打开命令提示符会话。 输入 devproxy,然后按下 和。
信任证书。 开发代理使用自定义 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。 开发代理高度灵活,支持许多不同的方案。 详细了解如何配置它以适应您特定的情景。
配置开发代理