Thank you for your response. My changes:
function addRequest(request as Object) as Boolean
print "uriHandler.brs - [addRequest]"
if type(request) = "roAssociativeArray"
context = request.context
if type(context) = "roSGNode"
parameters = context.parameters
if type(parameters) = "roAssociativeArray"
if parameters.lookUp("name") <> invalid
print "DeviceID uri"
uri = m.constants.uri_get_deviceID
else if parameters.lookUp("id") <> invalid
print "Token uri"
uri = m.constants.uri_get_token
else
print "Error: unrecognized parameter"
end if
end if
urlXfer = CreateObject("roUrlTransfer")
urlXfer.SetCertificatesFile("common:/certs/ca-bundle.crt")
urlXfer.InitClientCertificates()
urlXfer.setUrl(uri)
' print uri
urlXfer.setPort(m.port)
urlXfer.retainBodyOnError(true)
byteArray = CreateObject("roByteArray")
byteArray.fromAsciiString("test@test.com:1111")
' print byteArray.ToBase64String()
urlXfer.addHeader("authorization", "Basic " + byteArray.ToBase64String())
urlXfer.addHeader("Content-Type", "application/json")
urlXfer.addHeader("Accept", "application/json")
requestBody = formatJson({"name":"Roku"})
' urlXfer.setRequest("POST")
ok = urlXfer.asyncPostFromString(requestBody)
print ok
end if
end if
return true
end function
But it still doesn't work. I didn't quite understand about these certificates. If it doesn't work yet, it means that the sertificate is not suitable?