powershell - 为 PowerShell Invoke-WebRequest 重写 Unix Curl 命令
问题描述
我有一个 unix cmd,我需要重写它以在 Windows PowerShell 中实现相同的结果。我特别卡在登录...
原始 Unix 命令:
curl -u user:xxxx -X POST -s --data '{"one" : "one/text","two" : "two/text"}', http://myurl.net/run
我尝试的转换:
$params = '{"one" : "one/text","two" : "two/text"}'
Invoke-WebRequest -Uri http://myurl.net/run -Credential user:xxxx -Method POST -Body $params
现在,我收到错误:
Invoke-WebRequest : {"mimetype":[{"stderr":"text/plain"}],"streamdata":[{"stderr":"User cannot be authenticated"}],"status":"error"}
感谢您的任何指点或帮助!
解决方案
对我来说,看起来你的错误是你的-Credential
参数。
这需要一个凭证对象,而不是字符串。
尝试:
$Credential = Get-Credential
$params = '{"one" : "one/text","two" : "two/text"}'
Invoke-WebRequest -Uri http://myurl.net/run -Credential $Credential -Method POST -Body $params
该Get-Credential
命令将提示您输入用户名和密码。
此外,如果您的端点不是 https,那么您需要使用以下开关-AllowUnencryptedAuthentication
参数告诉 Powershell,否则根据文档它总是会失败:
允许通过未加密的连接发送凭据和机密。默认情况下,使用不以 https:// 开头的 -Uri 提供 -Credential 或任何 -Authentication 选项将导致错误,并且请求将中止,以防止无意中通过未加密的连接以纯文本形式通信秘密。要覆盖此行为,风险自负,请提供 -AllowUnencryptedAuthentication 参数。
警告:使用此参数不安全,不推荐使用。提供它只是为了与无法提供加密连接的旧系统兼容。使用风险自负
推荐阅读
- python - 我想在服务器上安装 PIP 模块,但我无法在服务器上安装任何东西,因为我没有 root 访问权限
- c++ - Apply Blur effect to a ID3D11Texture2D
- javascript - 基于 2 个变量的 JavaScript 表单重定向
- correlation - 如何获取列之间的相关性,发现最相关的列并将它们绘制在热图中?
- python - Python 从现在开始获取年初至今
- r - R:使用类似于 cumsum(折旧)的前一行(=滞后)的迭代更新值创建变量
- python - 如何在python中提取字符串的一部分?
- javascript - 使元素随着鼠标移动而移动
- css - 在 weasyprint 中不知道其编号的情况下样式化 pdf 页面
- linux - 如何使用 IF 测试一个值是否满足某个掩码