在PowerShell上进行curl时出现InvalidArgument

时间:2018-04-06 10:47:24

标签: powershell curl

我尝试使用https://www.jsonstore.io来存储我的PowerShell脚本中的日志,但是我收到以下错误:

Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the "Content-type: application/json" value of type
"System.String" to type "System.Collections.IDictionary".
At line:1 char:16
+ curl -XPOST -H "Content-type: application/json" -d '{
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

有谁熟悉这个?

1 个答案:

答案 0 :(得分:0)

在错误消息中显示:

  

url -XPOST -H “内容类型:application / json” -d'{

并在上面一行

  

无法转换类型的“Content-type:application / json”值   “System.String”键入“System.Collections.IDictionary”。

换句话说,Invoke-WebRequest希望您将其标题提供为字典而不是字符串。

我的猜测是你把标题写成一个字符串(在上面的第一个引用中以粗体显示)。这需要转换成字典。

尝试像这样调用Invoke-WebRequest

Invoke-WebRequest -Method POST -Uri $url -Headers @{"Content-type"="application/json"}

其中$url是您要拨打的网址。