我有一个Confluence站点,我想通过Confluence REST API获取有关页面的信息。我使用CQL query:cql=type=page and space=SpaceName
,所以我的URI是:
https://<confluence server>/confluence/rest/api/content/search?cql=type=page+and+space=SpaceName
我可以从Web浏览器登录Confluence,然后导航到上面的URL,我可以看到JSON格式的所有内容。
然而,当我使用完全相同的凭据和完全相同的URI运行Invoke-RestMethod
时,它成功了,但有0个结果:
PS > $uri = "https://<confluence server>/confluence/rest/api/content/search?cql=type=page+and+space=SpaceName"
PS > Invoke-RestMethod -Uri $uri -Credential $credential -Method Get
results : {}
start : 0
limit : 25
size : 0
cqlQuery : type=page and space=SpaceName
searchDuration : 20
totalSize : 0
_links : @{self=https://<confluence server>/confluence/rest/api/content/search?cql=type=page+and+space=SpaceName; base=https://<confluence server>/confluence; context=/confluence}
我还将输出传递给了一个变量($results
)并检查了results
属性;它是空的:
PS > $results = Invoke-RestMethod -Uri $uri -Credential $credential -Method Get
PS > [string]::IsNullOrEmpty($results)
True
我不知道这个问题是否与Confluence服务器不正确,我的凭据,或Invoke-RestMethod
。有没有可能,Confluence服务器可以允许查询/提供不同的结果通过Web浏览器,但不知何故不通过PowerShell?
有人知道这是怎么回事吗?
1条答案
按热度按时间2izufjch1#
让它工作。我使用
-Credential
参数与PSCredential
(这在过去的Bitbucket,Confiforms,Jira等中对我有效)。当我切换到基本身份验证的-Headers
参数时,它开始按预期工作:不知何故,
Invoke-RestMethod
没有正确地通过-Credential
参数传递PSCredential
凭证。