来自 PowerShell 的 REST API -“不允许使用 POST 方法”

Posted

技术标签:

【中文标题】来自 PowerShell 的 REST API -“不允许使用 POST 方法”【英文标题】:REST API from PowerShell - "POST Method not allowed" 【发布时间】:2020-11-25 00:27:57 【问题描述】:

我正在尝试将一个文件上传到 BitBucket 存储库(Git 系统)。 我正在尝试使用 REST API 发送它,但错误指示不允许使用 POST 方法,尽管我当然可以使用“git push”命令发送新文件。但是,如果我尝试 POST 文件,我会收到此错误:“HTTP Status 405 – Method Not AllowedType Status ReportMessage Request method POST not supported”

我正在尝试使用此代码:

$API_KEY="NDU2"
$uri="https://bitbucket.dev/projects/TEST/repos/faselect/browse/test"
$jsonFile=Get-Content -Raw -Pat C:\Users\john\Downloads\test1.json
Invoke-RestMethod -Uri $uri  -Headers @Authorization="$("Basic 0" -f $API_KEY)" -Method Post -Body $jsonFile -ContentType 'application/json'

【问题讨论】:

【参考方案1】:

我的方法是查看 PowerShell 库 Powerhell Gallery 并查看是否可以找到您正在寻找的内容作为开始.. 有几个项目正在使用这个 rest api,您可以将其用作示例.这是我在其中一个项目中发现的: Ps-bitbucket in Github

【讨论】:

嗨@thom schumacher 嗨@thom schumacher。感谢您提供的示例:他们的示例似乎与我非常相似。他们提出:Invoke-WebRequest -Uri "$ResourceUrl" -Method $Method -Headers $Headers -UseBasicParsing -ContentType $ContentType -Body $Body 和我尝试的(我只是错过了这个 UseBasicParsing 但我添加了它,我使用的是 Invoke-RestMethod 而不是 Invoke-WebRequest 但是它应该是一样的,但同样的错误。你能帮我吗?Invoke-RestMethod -Uri $uri -Headers @Authorization="$("Basic 0" -f $API_KEY)" -UseBasicParsing -Method Post -Body $jsonFile -ContentType 'application/json'

以上是关于来自 PowerShell 的 REST API -“不允许使用 POST 方法”的主要内容,如果未能解决你的问题,请参考以下文章

powershell 使用REST-API的PowerShell V3 Multipart / formdata示例(Invoke-RestMethod)

powershell 使用REST-API的PowerShell V3 Multipart / formdata示例(Invoke-RestMethod)

无法在 PowerShell 中使用 REST API 删除 DevOps 分支

如何使用 REST API 在 PowerShell 中获取 TFS 构建报告 [重复]

如何在 PowerShell 中使用 Rest API 创建服务更改

TFS 构建通过 REST API 和 PowerShell 发布测试结果 TRX