问题
我很难将一个Invoke-RestMethod调用转换为一个curl调用,因为Powershell并没有真正处理信息最丰富的错误消息(如果有的话)。
卷曲呼叫(Ubuntu)
token = "djsakldsakldjaslda"
host = "https://lalala.azuredatabricks.net/"
curl -X POST -H "Authorization: Bearer $(token)" $(host)/api/2.0/clusters/create -d $(cat my_file.json)Invoke-RestMethod调用(Powershell)
$token= "djsakldsakldjaslda"
$host = "https://lalala.azuredatabricks.net/"
Invoke-RestMethod -Method Post -Uri $host/api/2.0/clusters/create -Headers @{"Authorization" = "Bearer " + $token} -Body $(get-content my_file.json -raw | ConvertFrom-Json)我有不同的身体格式,但无论我发送什么,我只是得到一些HTML的登录页面。在Ubuntu和Curl上,一切都很完美。
注意:
问题似乎是PowerShell不能像在"https://lalala.azuredatabricks.net//api/2.0/clusters/create"“中那样处理双”/“。
奇怪的是,Invoke-RestMethod访问了登录页面,但在那里失败了。
发布于 2020-06-24 08:58:11
主体应该是JSON格式,当您获取文件并添加| ConvertFrom-Json时,内容将变成一个PowerShell对象。
因此,您可以删除| ConvertFrom-Json,它应该可以工作:)
发布于 2020-06-24 09:04:33
使用-InFile上传文件。不要忘记设置内容类型。
包装是为了清晰(在PowerShell中转义EOL作为行的延续,它看起来很有趣,因为StackOverflow语法高亮显示不能处理它):
Invoke-RestMethod `
-Method Post `
-Uri "$host/api/2.0/clusters/create"
-Headers @{
Authorization = "Bearer $token"
} `
-Infile my_file.json
-ContentType "application/json"https://stackoverflow.com/questions/62551059
复制相似问题