You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中使用curl带账号密码请求站点认证失败及报错如何解决?

问题根源及解决办法

你遇到的所有报错核心原因是:当前在Windows PowerShell环境下执行命令,PowerShell中默认的curl是Invoke-WebRequest cmdlet的别名,并非原生的cURL二进制程序,二者参数规则完全不同。


各报错原因说明

  • 执行curl -user username:password https://website.de报错:Invoke-WebRequest没有-user参数,该写法传递的认证信息格式不符合要求,导致服务端接收不到正确的鉴权信息返回认证失败。
  • 执行curl https://user:password@website.de报错:PowerShell的URI解析逻辑不支持直接在URL中携带用户名密码的格式,会把@前面的冒号错误识别为端口分隔符,触发URI格式错误。
  • 执行curl -u user:password https://website.de报错:Invoke-WebRequest没有缩写为-u的参数,u开头的参数存在多个匹配项,导致参数歧义报错。

两种可行解决方案

方案1:使用PowerShell原生Invoke-WebRequest的正确语法

先构造PS认证对象,再发起请求:

# 替换为实际的用户名、密码
$username = "username"
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $password)

# 执行请求,添加-UseBasicParsing可避免DOM解析报错
Invoke-WebRequest -Uri https://website.de -Credential $credential -UseBasicParsing

方案2:直接调用原生cURL程序(推荐,兼容原有cURL使用习惯)

Windows 10 1809及以上版本默认自带原生cURL,只需要在命令后加.exe后缀即可避开PowerShell别名,使用原生cURL的所有参数:

curl.exe -u username:password https://website.de

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:36:05