【发布时间】:2014-09-14 20:37:32
【问题描述】:
场景
除其他外,Powershell 2.0 没有有用的 cmdlet Invoke-RestMethod。
我无法升级到版本 3,我发现的大多数示例都使用版本 3。
我找到了this article,但是对于我的简单场景来说,这似乎太复杂了。
我需要编写一个以 Json 格式发布数据的 Powershell 脚本,例如
{"Id":5,"Email":"test@com","DataFields":null,"Status":0}
我尝试过的
我能够获取数据。这是我尝试过的脚本之一。
curl -v --user username:password https://api.dotmailer.com/v2/account-info
但是,当我尝试 POST 时,我不知道将消息正文放在脚本中的哪个位置。这是我到目前为止所得到的:
curl -v -X POST -H "Accept: application/json" -H "Content-Type: application/json" -u username:password -d '{"Id":5,"Email":"test@com","OptInType":0,"EmailType":0, "DataFields":null,"Status":0}' https://api.dotmailer.com/v2/contacts
返回以下错误:
{"message":"Could not parse the body of the request based on the content type \"application/json\" ERROR_BODY_DOES_NOT_MATCH_CONTENT_TYPE"}*
问题
谁能建议如何使用 cURL 从 Powershell POST Json 数据?
任何关于我为什么会收到我在我尝试过的部分中提到的错误的指针将不胜感激。
谢谢。
【问题讨论】:
-
@DavidBrabant 我已经看到了这个问题,我不认为我的问题是重复的,因为我不是在询问基本身份验证。
-
嗯。事实上,你是。 “我需要编写一个 Powershell 脚本,以 Json 格式发布数据并使用基本身份验证”。 AFAIK,要发布 JSON,您只需将其转换为具有 UTF8 编码的字节并将
application/json设置为内容类型。所以从链接的问题中剪切并粘贴相关部分,其中$Post = '{"Id":5,"Email":"test@com","DataFields":null,"Status":0}' -
@FrodeF。很公平,我已经编辑了这个问题以避免这种情况(我确实知道如何编写基本的身份验证位)。由于不清楚,我还编辑了标题:我想使用 cURL 命令并在 powershell 中运行它们。
-
如果有人需要回答这个问题,请参考:stackoverflow.com/a/23556669/4192663
标签: rest powershell curl