Confluence rest api is not working properly.

sciamat October 7, 2022

Hello

 

I am implementing uploading a file to a specific page using rest api.

 

I am developing with Scriptrunner for Confluence.

 

-----------------------------------------------------------------------------------------

import groovy.json.JsonBuilder
import groovy.json.JsonSlurper

import java.io.BufferedReader
import java.io.InputStreamReader
import javax.net.ssl.HttpsURLConnection
import java.net.URL
import javax.xml.bind.DatatypeConverter

import org.apache.log4j.Logger

 

public void PostAttachmentFile(def pageId, String fileName, Logger logger) {
byte[] message = ("admin:password").getBytes("UTF-8")
String basicAuth = DatatypeConverter.printBase64Binary(message)
int responseCode

try {
String baseURL = "https://wiki-dev.com/rest/api/content/${pageId}/child/attachment"

URL url = new URL(baseURL)
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection()

conn.setRequestMethod("POST")

conn.setRequestProperty("X-Atlassian-Token", "no-check")
conn.setRequestProperty("Authorization", "Basic " + basicAuth)

conn.setDoInput(true)
conn.setDoOutput(true)

def addAttr = new JsonSlurper().parseText(
"""
{
"file" : "${fileName}"
}
"""
)
logger.debug(addAttr)
def jsons = new JsonBuilder(addAttr).toPrettyString()
OutputStream os = conn.getOutputStream()

os.write(jsons.toString().getBytes("UTF-8"))
os.flush()
os.close()

responseCode = conn.getResponseCode()
} catch (Exception e) {
logger.debug(e.getMessage())
}
logger.debug(responseCode)
}

 

------------------------------------------------

PostAttachmentFile(pageId, "@/home/admin/test.csv", logger)

 

401 error

 

---------------------------------------------------

It is a linux (cent os) server and I get a 401 error even if I try to connect to the os where confluence is running and use curl.

I don't know what the problem is.

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events