首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Curl转换为Invoke-RestMethod方法

将Curl转换为Invoke-RestMethod方法
EN

Stack Overflow用户
提问于 2020-06-24 08:42:16
回答 2查看 3.8K关注 0票数 1

问题

我很难将一个Invoke-RestMethod调用转换为一个curl调用,因为Powershell并没有真正处理信息最丰富的错误消息(如果有的话)。

卷曲呼叫(Ubuntu)

代码语言:javascript
复制
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)

代码语言:javascript
复制
$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访问了登录页面,但在那里失败了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-24 08:58:11

主体应该是JSON格式,当您获取文件并添加| ConvertFrom-Json时,内容将变成一个PowerShell对象。

因此,您可以删除| ConvertFrom-Json,它应该可以工作:)

票数 1
EN

Stack Overflow用户

发布于 2020-06-24 09:04:33

使用-InFile上传文件。不要忘记设置内容类型。

包装是为了清晰(在PowerShell中转义EOL作为行的延续,它看起来很有趣,因为StackOverflow语法高亮显示不能处理它):

代码语言:javascript
复制
Invoke-RestMethod `
    -Method Post `
    -Uri "$host/api/2.0/clusters/create"
    -Headers @{
        Authorization = "Bearer $token"
    } `
    -Infile my_file.json
    -ContentType "application/json"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62551059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档