I’m trying to fetch some JSON data from my server but about 60% of the time the roURLEvent returns “??” as the body of the request. The other 40% of the times it works as expected (the content response hasn’t changed).
The code for the request is the following
function request()
baseurl = m.top.url
token = m.top.token
url = baseurl + "/some_endpoint"
? "Task URL: ";url
? "Token: "; token
http = createObject("roUrlTransfer")
http.RetainBodyOnError(true)
port = createObject("roMessagePort")
http.setPort(port)
http.setCertificatesFile("common:/certs/ca-bundle.crt")
http.InitClientCertificates()
http.enablehostverification(false)
http.enablepeerverification(false)
http.addHeader("token", token)
http.setUrl(url)
if http.AsyncGetToString() Then
msg = wait(100000, port)
if (type(msg) = "roUrlEvent")
if (msg.getresponsecode() > 0 and msg.getresponsecode() < 400)
print "Task Response "
print msg
stop
In the debugger I print the msg headers and everything seems to be ok
{
access-control-allow-origin: "*"
cache-control: "max-age=10"
connection: "keep-alive"
content-encoding: "gzip"
content-type: "application/json; charset=utf-8"
date: "Thu, 03 Oct 2019 01:06:28 GMT"
etag: "W/"474-4DPxJcE1OYaf4iQIgRkIlpu9KQA""
transfer-encoding: "chunked"
vary: "Accept-Encoding"
x-powered-by: "..."
}
But everytime I print the msg.getString(), or just msg, I get “??” on the console. Also I’m pretty positive the backend is working as expected since I have 2 mobile apps running on the same server without any issues, I also double checked the url and it’s the right one (since it works 40% of the time)
I’m really lost here since I don’t see what could be going on. Maybe it’s has to be with the encoding? but it works 40% of time so it doesn’t make sense. I’m also running 2 other queries to the same server at the same time, which work mostly without issue (one of the other queries fails with the same error but only about 10% of the time)
Any ideas?
