【发布时间】:2017-02-15 16:59:56
【问题描述】:
我似乎无法通过 Rest API 在 Confluence Cloud v1000.957.0 上创建新页面。我已经尝试使用 cURL 和 Python 都无济于事:我得到的只是 HTTP 200 每次都有一个空的 JSON 响应。如果我将凭据更改为不正确,我会收到 HTTP 401。
curl -u ******@******.com:****** -X POST -H 'Content-Type: application/json' -d'{"type":"page","title":"TESTING123", "ancestors":[{"id":123456}], "space":{"key":"AA"},"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}' https://********.atlassian.net/wiki/rest/api/content/
为了匿名,我更改了 cURL 调用的一些细节,但我知道凭据、祖先 ID、空间密钥和 API URL 是正确的。我还验证了此帐户在 Confluence 中具有在此空间中创建页面的正确权限,并且已启用 Confluence 的 API 访问权限。
我尝试过的 API 调用的变体:
在网址末尾添加
?os_authType=basic-
添加尽可能多的参数(全部为空值)例如:
status: currentoperations: []metadata: {}
更改 API 调用以在 Confluence 空间的顶层创建页面(省略
ancestors字段)。添加此标头:
Accept: application/json将
view选项添加到调用的body部分,然后将其附加到URL 的末尾:&expand=body.view。我发现将它添加到 Python 代码会得到相同的结果,但是将其添加到 cURL 调用会打印出类似[1] 42999的内容(后一部分会随着每次调用而变化);然后在一个新命令或简单地按下Return时,它会打印[1]+ Done,后跟一大块空格,然后是我刚刚进行的cURL调用。
我在 Atlassian 的 JIRA for JIRA 软件中发现了一个非常相似的错误,所以显然这种情况也发生在 JIRA 上,但是是间歇性的。 https://jira.atlassian.com/browse/JRA-41559
我对 HTTP 协议不是很熟悉,所以我可能忽略了一些东西,所以我真的只是想尝试更多的选择(当然,一个解决方案是理想的)。
【问题讨论】:
-
您是否成功检索了现有内容列表或使用了其他 API 请求?尝试通过浏览器调用一些 API 请求(仅通过 url 获取,使用浏览器扩展的 POST,例如YARC)来区分身份验证和请求问题。
-
我没有,但我确实设法通过在 cURL 调用中省略用户名的域来使其工作。
标签: curl response confluence confluence-rest-api