I am attempting to automate the update of Confluence pages using a Python 3.4 script. I first tested using the following cURL:
curl -E jchittum -X PUT -H 'Content-Type: application/json' -d '{"id": "48179230","type": "page","title": "Confluence Api Test","body": {"storage": {"value": "<p> New Content </p>","representation": "storage"}},"ancestors":[{"id": "4595907","type": "page","title": "Luna Release"}],"version": {"number": 5}}' https://ouratlassianserver.com/wiki/rest/api/content/48179230 | python -mjson.tool
This requests updated just fine, and returned the proper JSON.
When I tried to replicate it Python, I get:
{'message': 'javax.ws.rs.WebApplicationException: null', 'statusCode': 500}
When doing a GET operation, everything works fine. Only seeing this on a PUT. We use SSL for authentication
The Python 3.4 code is:
import requests
import json
confPutAddress = "https://ouratlassianserver.com/wiki/rest/api/content/48179230"
cert = "/path/to/cert.pem"
certKey = "path/to/cert.key"
postDict =
{
"id": "48179230",
"type": "page",
"title": "Confluence Api Test",
"version": {
"number": 6
},
"ancestors": [
{
"id": "4595907"
}
],
"type": "page",
"body": {
"storage": {
"value": "<p>New page data.</p>",
"representation": "storage"
}
},
"space": {
'id': 1179650,
'name': 'Luna',
'type': 'global',
}
}
confPUT = requests.put(postAddress, data = postDict, verify=True, cert = (cert, certKey))
print(confPUT.text)
I added space after seeing the following page: https://answers.atlassian.com/questions/38379050
figured out my errors with the help of my team:
1) convert dict to json: convDict = json.dumps(postDict)
postJSON = json.loads(convDict)
2) add headers:
headers = { "content-type" : "application/json" }
3) set requests.put to use JSON
confPUT = requests.put(postAddress, headers = headers, json = postJSON , verify=True, cert = (cert, certKey))
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.