gpt4 book ai didi

powershell - 调用 WebRequest : Cannot bind parameter 'Headers'

转载 作者:行者123 更新时间:2023-12-04 01:05:08 30 4
gpt4 key购买 nike

我正在尝试在 powershell 中执行 curl 命令:

curl --user bitcoinipvision --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "move", "params": ["acc-1", "acc-2", 6, 5, "happy birthday!"] }' -H 'content-type: application/json;' http://localhost:18332/

但是我得到这个错误,是什么问题?

Invoke-WebRequest:无法绑定(bind)参数“ header ”。无法转换
“内容类型:应用程序/json;”要键入的“System.String”类型的值
“System.Collections.IDictionary”。
在行:1 字符:158
+ ... 5, "生日快乐!"] }' -H 'content-type: application/json;' http://...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+fullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

最佳答案

正如一些评论者已经指出的那样,您会看到 curl实际上只是 Invoke-WebRequest 的别名:

PS> Get-Command curl

CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest

注意:我建议使用 Get-Command ,而不是 Get-Alias 因为您可能不知道您正在使用的命令是别名、cmdlet 还是可执行文件。

从这一点来看,有两种方法可以解决您的问题:
  • 使用 PowerShell 的 Invoke-RestMethod (或者,如果您使用的是 PowerShell < 3, Invoke-WebRequest ):
    Invoke-RestMethod -Uri http://localhost:18332/ -Credential bitcoinipvision -body $thisCanBeAPowerShellObject 

    如您所见,不需要内容类型,因为 JSON 是 IRM 的默认内容类型;虽然您可以使用 -ContentType 更改它.
  • 如果在您当前的环境中可用,请使用原始的 cUrl .你必须这样输入:
    curl.exe --user bitcoinipvision --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "move", "params": ["acc-1", "acc-2", 6, 5, "happy birthday!"] }' -H 'content-type: application/json;' http://localhost:18332/

  • 我肯定更喜欢第一个而不是第二个,因为 PowerShell 本身支持 JSON 答案,这使您可以轻松使用它们,例如通过管道将其发送到 Where-Object , Format-Table , Select-Object , Measure-Object还有很多。如果您更喜欢使用 cUrl,则必须解析 curl.exe 返回的字符串。自行处理。这也可能是二进制内容的问题。

    关于powershell - 调用 WebRequest : Cannot bind parameter 'Headers' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45183355/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com