尝试使用身份验证(JetBrains最近在TeamCity中添加的功能)访问TeamCity。该文档非常差,没有示例。只是对我不起作用。
执行POWERSHELL命令
以下不是我尝试的唯一方法,但作为示例,发布了调用rest方法的命令,例如:
$body="<build branchName=`"development`" rebuildAllDependencies=`"true`"><buildType id=`"DevSandbox_TestArea_PageAutomation`"/></build>"
Invoke-RestMethod -Uri http://teamcity.my.domain.com/httpAuth/app/rest/buildQueue/ -Method Post -ContentType application/xml -Body $body -Headers @{Origin= 'http://teamcity.my.domain.com'; Authorization= 'Bearer tEamCitYauThtoKen'} -UseBasicParsing
错误
出现以下错误:
Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
At line:1 char:1
+ Invoke-RestMethod -Uri http://teamcity.my.domain.com/httpAuth/app/r ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
谁能帮我一下标题和/或缺少的内容有什么问题吗?
引用:
TeamCity 2019.1 Help - Managing Access Token
Powershell 6 - Invoke-RestMethod
最佳答案
仅当使用基本身份验证访问TeamCity服务器时,才需要URL中的/httpAuth/
部分。
所以解决方案是使用url http://teamcity.my.domain.com/app/rest/buildQueue/
代替http://teamcity.my.domain.com/httpAuth/app/rest/buildQueue/
因为您使用基于 token 的身份验证。
关于powershell - 使用Authenticationn/Access token 访问TeamCity时出现错误401未经授权,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57412048/