【发布时间】:2014-03-18 21:10:00
【问题描述】:
我正在尝试通过 Invoke-RestMethod 在与带有 -F 开关的 curl 类似的上下文中发送文件。
卷曲示例
curl -F FileName=@"/path-to-file.name" "https://uri-to-post"
在 powershell 中,我尝试过这样的事情:
$uri = "https://uri-to-post"
$contentType = "multipart/form-data"
$body = @{
"FileName" = Get-Content($filePath) -Raw
}
Invoke-WebRequest -Uri $uri -Method Post -ContentType $contentType -Body $body
}
如果我检查提琴手,我会看到正文包含原始二进制数据,但我收到 200 响应,显示没有发送有效负载。
我也尝试过使用 -InFile 参数,但没有成功。
我已经看到了许多使用 .net 类的示例,但我试图使用较新的 Powershell 3 命令来保持这种简单性。
有人对这项工作有任何指导或经验吗?
【问题讨论】:
-
不支持多部分消息。您可以将内容类型设置为任何内容,但将其设置为
multipart/form-data不会导致消息被格式化为multipart。 -
Multipart/form-data 在添加为内容类型时确实有效。我在这里遇到的问题是 API 需要一些参数来接受原始内容,然后我能够使用 -InFile \path\to\file 并使用 Invoke-RestMethod 上传
标签: powershell curl