无法使用curl

时间:2017-04-03 06:17:26

标签: html json curl confluence-rest-api

我正在尝试使用一些HTML内容更新Confluence页面。我将此HTML内容放在同一位置的名为Output.html的其他文件中。我不能直接复制&将HTML内容粘贴到此脚本,因为它是大量数据,我还需要动态执行此脚本。

curl -u user:pass -X PUT -H 'Content-Type: application/json' -d'{"id":"2196","type":"page","title":"Main page","space":{"key":"AB"},"body":{"storage":{"value":"<p> Text </p>","representation":"storage"}},"version":{"number":2}}' https://Client.atlassian.net/wiki/rest/api/content/2196 | python -mjson.tool

例如,我的HTML文件内容如下:

<!DOCTYPE html> <html> <head> <title>Page Title</title> </head> <body>  <h1>My First Heading</h1> <p>My first paragraph.</p>  </body> </html> 

我需要在我的Confluence页面上将其更新为HTML内容,需要从HTML文件直接获取到脚本"value":"<p> Text </p>"

当我手动将示例HTML内容复制到此value空间时,该页面会成功显示HTML内容。

1 个答案:

答案 0 :(得分:1)

我使用Python和它的请求模块使用了这个东西。见下面的代码,

import json
import requests

url = 'https://Client.atlassian.net/wiki/rest/api/content/87440'
headers = {'Content-Type': "application/json", 'Accept': "application/json"}
f = open("file.html", "r")
html = f.read()
data={}
data['id'] = "87440"
data['type']="page"
data['title']="Data Page"
data['space']={"key":"AB"}
data['body'] = {"storage":{"representation":"storage"}}
data['version']={"number":4}
print data
data['body']['storage']['value'] = html
print data
res = requests.put(url, json=data, auth=('Username', 'Password'))

print (res.status_code)
print (res.raise_for_status())

随意询问您是否有任何疑问。