【发布时间】:2017-12-24 07:11:58
【问题描述】:
我正在尝试在 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:无法绑定参数“标头”。无法转换 “内容类型:应用程序/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【问题讨论】:
-
试试
alias curl,它显然是Invoke-WebRequest(虽然不在我的PowerShell上)。如果你想要真正的curl,请明确使用curl.exe。 -
您将内容提到为 application/json 而您将其作为字符串传递。如果它的正确 json 则使用 convertto-json 将其转换为 json
-
请注意,最新版本的 PowerShell 具有
Invoke-RestMethod并完全支持 JSON(ConvertTo-Json等)。值得阅读有关执行此操作的原生 PowerShell 方法。 -
这些Invoke-RestMethod examples 会有所帮助,因为我觉得文档不太好。
标签: powershell curl