Read the statement by Michael Teeuw here.
axios request returns no data, while http request does
-
I have set up an axios request for a module I’M trying to fix (MMM-Fantasy-Premier league)
axios.get(url) .then(function(response){ console.log(response); }).catch(function(err){ console.log(self.name + " : getleagueData : " + err); });The axios request gives me a this:
{ status: 200, statusText: 'OK', headers: { connection: 'close', 'content-length': '0', server: 'Varnish', 'retry-after': '0', 'content-type': 'application/json', 'accept-ranges': 'bytes', date: 'Fri, 11 Sep 2020 07:17:50 GMT', via: '1.1 varnish', 'x-served-by': 'cache-hhn4058-HHN', 'x-cache': 'MISS', 'x-cache-hits': '0', 'x-timer': 'S1599808670.050178,VS0,VE0' }, config: { url: 'https://fantasy.premierleague.com/api/leagues-classic/63436/standings', method: 'get', headers: { Accept: 'application/json, text/plain, */*', 'User-Agent': 'axios/0.20.0' }, transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, adapter: [Function: httpAdapter], xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, validateStatus: [Function: validateStatus], data: undefined }, request: ClientRequest { _events: [Object: null prototype] { socket: [Function], abort: [Function], aborted: [Function], connect: [Function], error: [Function], timeout: [Function], prefinish: [Function: requestOnPrefinish] }, _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, _last: true, chunkedEncoding: false, shouldKeepAlive: false, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: 'fantasy.premierleague.com', alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object: null prototype], _eventsCount: 10, connecting: false, _hadError: false, _parent: null, _host: 'fantasy.premierleague.com', _readableState: [ReadableState], readable: true, _maxListeners: undefined, _writableState: [WritableState], writable: false, allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: [Circular], [Symbol(res)]: [TLSWrap], [Symbol(asyncId)]: 5496, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: null, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, connection: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: 'fantasy.premierleague.com', alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object: null prototype], _eventsCount: 10, connecting: false, _hadError: false, _parent: null, _host: 'fantasy.premierleague.com', _readableState: [ReadableState], readable: true, _maxListeners: undefined, _writableState: [WritableState], writable: false, allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: [Circular], [Symbol(res)]: [TLSWrap], [Symbol(asyncId)]: 5496, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: null, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, _header: 'GET /api/leagues-classic/63436/standings HTTP/1.1\r' + '\nAccept: application/json, text/plain, */*\r' + '\nUser-Agent: axios/0.20.0\r' + '\nHost: fantasy.premierleague.com\r' + '\nConnection: close\r' + '\n\r' + '\n', _onPendingData: [Function: noopPendingOutput], agent: Agent { _events: [Object: null prototype], _eventsCount: 1, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object], requests: {}, sockets: [Object], freeSockets: {}, keepAliveMsecs: 1000, keepAlive: false, maxSockets: Infinity, maxFreeSockets: 256, maxCachedSessions: 100, _sessionCache: [Object] }, socketPath: undefined, method: 'GET', path: '/api/leagues-classic/63436/standings', _ended: true, res: IncomingMessage { _readableState: [ReadableState], readable: false, _events: [Object: null prototype], _eventsCount: 3, _maxListeners: undefined, socket: [TLSSocket], connection: [TLSSocket], httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, headers: [Object], rawHeaders: [Array], trailers: {}, rawTrailers: [], aborted: false, upgrade: false, url: '', method: null, statusCode: 200, statusMessage: 'OK', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular], responseUrl: 'https://fantasy.premierleague.com/api/leagues-classic/63436/standings', redirects: [] }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, _redirectable: Writable { _writableState: [WritableState], writable: true, _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, _options: [Object], _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function], _currentRequest: [Circular], _currentUrl: 'https://fantasy.premierleague.com/api/leagues-classic/63436/standings' }, [Symbol(isCorked)]: false, [Symbol(outHeadersKey)]: [Object: null prototype] { accept: [Array], 'user-agent': [Array], host: [Array] } }, data: '' }So
response.datais empty.
When I call this exact site in my browser I get a valid json esponse.What am I doing wrong?
Does anyone know? -
Hi,
Sometime something like this with https can help:
const httpsAgentConfig = { rejectUnauthorized: false } this.axiosInstance = axios.create({ httpsAgent: new https.Agent(httpsAgentConfig), })after adapt it with your code
try it, no guaranties… but maybe … -
Did you ever find out the answer to this, i’m having the same issue.
-
No unfortunately not.
Above addition did not help.I’m getting the feeling that the axios requests somehow closes before the data field is being returned. Haven’t tried much since it is not highest priority for me. But would appreciate any idea/suggestion.
-
for some reason it doesn’t seem to like the axios user agent. Changing it to something else appears to work. Example:
axios.defaults.headers.common['User-Agent'] = 'PostmanRuntime/7.26.2'; -
@sharklaser many servers use the user-agent string to generate different content , as the ‘browsers’ all support different things, so a random string as user-agent will fail
-
@sharklaser said in axios request returns no data, while http request does:
:
axios.defaults.headers.common[‘User-Agent’] = ‘PostmanRuntime/7.26.2’;That was the solution! Thanks!!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login