将 curl 转换为 PowerShell
使用 Invoke-RestMethod 将 curl 命令转换为 PowerShell 代码。curl2code 通过 WebAssembly 完全在您的浏览器中运行——您的数据保持私密。对于 C#,请尝试我们的 curl 转 C# 转换器。对于 Python,请参阅 curl 转 Python。下方是即插即用的 PowerShell 示例。
如何从浏览器复制 curl
- 1
打开开发者工具
按 F12 或 Ctrl+Shift+I 打开浏览器开发者工具。
- 2
进入 Network 标签页
点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。
- 3
复制为 cURL
右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。
常见问题解答
什么是 PowerShell Invoke-RestMethod?
Invoke-RestMethod 是 PowerShell 内置的 cmdlet,用于发起 HTTP 请求并自动解析 JSON/XML。它直接返回解析后的对象 —— 无需手动反序列化。适用于 PowerShell 3.0+ 和 PowerShell Core。curl2code 还支持返回原始响应的 Invoke-WebRequest。
Invoke-RestMethod vs Invoke-WebRequest — 该使用哪一个?
Invoke-RestMethod 自动将 JSON/XML 响应解析为 PowerShell 对象 —— 非常适合 API 工作。Invoke-WebRequest 返回包含标头、状态码和原始内容的完整响应 —— 更适合调试和非 JSON 响应。API 请使用 RestMethod,抓取或诊断请使用 WebRequest。对于类似的 .NET 方法,请参阅 curl 转 C#。
如何在 PowerShell 中处理身份验证?
对于 Bearer:Invoke-RestMethod -Uri $url -Headers @{ Authorization = "Bearer $token" }。对于 Basic 认证,使用 -Credential (Get-Credential) 或 -Authentication Basic (PowerShell 6+)。PowerShell 使用 SecureString 安全地处理凭据。curl2code 将认证标志转换为 PowerShell cmdlet 参数。
如何在 PowerShell 中发送多部分表单数据 (multipart form data)?
PowerShell 6+ 支持 -Form @{ file = Get-Item "doc.pdf"; desc = "My file" } 进行多部分上传。在 Windows PowerShell 5.1 中,需要手动构建多部分主体或使用 .NET 类 (System.Net.Http.MultipartFormDataContent)。curl2code 处理 -F 标志转换。
如何在 PowerShell 中处理 HTTP 错误?
使用 try/catch:两个 cmdlet 在收到非 2xx 响应时都会抛出 WebException。通过 $_.Exception.Response 访问响应。在 PowerShell 7+ 中,使用 -SkipHttpErrorCheck 防止抛出异常,改为手动检查 $response.StatusCode。
如何在 PowerShell 中处理 JSON?
Invoke-RestMethod 自动将 JSON 解析为 PSObject。对于手动转换:$data = $json | ConvertFrom-Json。发送 JSON:$body = @{ name = "John" } | ConvertTo-Json。PowerShell 的对象管道与解析后的 API 响应自然集成,便于过滤和转换。
如何在 PowerShell 中设置超时?
在两个 cmdlet 上都使用 -TimeoutSec 30 参数。在 PowerShell 7+ 中,使用 -ConnectionTimeoutSeconds 和 -OperationTimeoutSeconds 进行精细控制。对于重试,使用 -MaximumRetryCount 3 和 -RetryIntervalSec 2 (PowerShell 7.1+)。
如何在 PowerShell 中使用代理?
使用 -Proxy 'http://proxy:8080' 参数。对于代理认证:-ProxyCredential (Get-Credential)。PowerShell 在 Windows 上默认遵循系统范围的代理设置。若要绕过:-NoProxy (PowerShell 6+)。curl2code 将 -x 标志转换为 PowerShell 代理参数。
如何在 PowerShell 中发送带有 JSON 正文的 POST 请求?
使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 命令转换为 PowerShell。生成的代码使用 Invoke-RestMethod -Uri $url -Method Post -Body ($data | ConvertTo-Json) -ContentType 'application/json'。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 Invoke-RestMethod 代码中设置相应的 Content-Type 请求头。
如何在 PowerShell 中添加 Bearer 令牌授权?
将 curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 Invoke-RestMethod 代码:-Headers @{ Authorization = 'Bearer YOUR_TOKEN' }。curl2code 会从 -H "Authorization: Bearer ..." 和 --oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass。
如何在 PowerShell 中设置 Content-Type 请求头?
curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 Invoke-RestMethod 代码:-ContentType 'application/json'。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 Invoke-RestMethod API。