在PowerShell中使用Invoke-RestMethod复制curl POST

时间:2015-05-19 15:41:21

标签: rest curl powershell-v3.0

我试图在PowerShell中复制以下curl命令:

linguist@qa:~ % curl -X POST -F text="Example lesson text" -F share_status=private \
                 -F title="Example Lesson Ttiel" -F collection=50510 \
                 -F image=@/home/lingq/Pictures/penguin.jpg \
                 -F tags=British -F tags=European
                 'https://www.lingq.com/api/languages/en/lessons/' -H 'Authorization: Token bd894eabcd4c0'

这是他们网页上的API使用示例,我假设它有效。我不知道它是否确实存在,我没有卷曲,如果可能的话我也不想卷曲。 我一直在尝试使用InvokeRestMethod函数在PowerShell中重新创建命令。到目前为止,我得到的是:

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization","Token db3403c339fb4515c2940cccdcdcdbdcdbdcdbddc4cf453534453")
$response = Invoke-RestMethod -Method Post 'https://www.lingq.com/api/languages/ja/lessons/' -Headers $headers 

我甚至不确定我是否正确添加了令牌,我不知道如何在curl中添加-F后面的参数。我不需要图像和标签,但其余的都很重要。有什么想法吗?

编辑:我已通过调用

验证了身份验证令牌标头的工作原理
Invoke-RestMethod -Method Get 'https://www.lingq.com/api/profile/' -Headers $headers 

用我的令牌获取我的个人资料。 我也发现了不祥的-F在卷曲中意味着什么,它的形式数据。所以现在我试图弄清楚如何在一个Invoke-RestMethod调用中发送4个表单数据值。

1 个答案:

答案 0 :(得分:0)

this answer 有一个类似的问题,应该可以帮到你。如果您对 curl 开关的含义有疑问,您不必安装它来查找 its documentation