设置开发代理
开发代理是一种命令行工具,可帮助你模拟云 API 的行为和错误,以帮助构建可复原的应用。
本教程介绍如何安装和运行开发代理。
安装开发代理服务器
安装开发代理的最简单方法是使用 winget。 或者,可手动安装开发代理。
若要使用 winget 安装开发代理,请运行以下命令:
winget install Microsoft.DevProxy --silent
重要
开发代理安装程序向 PATH 添加新条目。 若要在安装后使用开发代理,必须重启命令提示符才能刷新 PATH 环境变量。
安装开发代理的最简单方法是使用 Homebrew。 或者,您可以手动安装 Dev Proxy。
安装开发代理的最简单方法是使用安装脚本。 或者,可以手动安装 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
,然后按 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。 开发代理高度灵活,支持许多不同的方案。 详细了解如何配置它以适应您特定的情景。