What Could Cause "Connect Etimedout" Error When the Url Is Working in Browser?
I Train Myslef with Nodejs and Tried a Simple Get Call. Here Is My Code: Var Http = Require('Http'); Var Options = { Host: ' Path: '/Xmlapi/Boardgame/1?...
I train myslef with NodeJS and tried a simple GET call. Here is my code:
var http = require('http');
var options = {
host: '
path: '/xmlapi/boardgame/1?stats=1',
method: 'GET'
}
var request = http.request(options, function (response) {
var str = ""
response.on('data', function (data) {
str += data;
});
response.on('end', function () {
console.log(str);
});
});
request.on('error', function (e) {
console.log('Problem with request: ' + e.message);
});
request.end();
The URL called seems to work in my browser
Anyway, I've got Problem with request: connect ETIMEDOUT when I run the code and I have no idea how to fix it.
What could cause this error ? Is it my code or is it a network/proxy issue?
8 Answers
When behind a proxy you need to make the following modifications (as explained in this answer):
- put the proxy host in the
hostparameter - put the proxy port in the
portparameter - put the full destination URL in the
pathparameter :
Which gives:
var options = {
host: '<PROXY_HOST>',
port: '<PROXY_PORT>',
path: '
method: 'GET',
headers: {
Host: '
}
}
In my case it was because of http but not https as required
The following change with the request worked for me:
var options = {
proxy:'PROXY URL',
uri: 'API URL',
method: 'GET'
}
request(options, function (err, response, body) {
if(err){
console.log('error:', err);
} else {
console.log('body:', body);
}
});
In my case it was a misconfigured subnet. Only one of the 2 subnets in the ELB worked. But my client kept trying to connect to the misconfigured one.
if you have URL like :
URL: 'localhost:3030/integration',
The URL above cause some issues because HTTP does not exist at the beginning of URL so Just change it to it should work.
URL: '
If this error occurs while using POSTMAN.
So, when you call a request in Postman and the API requires your VPN to be up before you can make a successful call. You will need to connect or reconnect your VPN.
In my case, I was working on a company's laptop. I found out it was the VPN that was down.
I was facing this issue on Ubuntu Server while maintaining a node instance on PM2. Basically after restarting the instance after taking the pull I was getting the same error on initial connection of mySQL inside the code.
Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (/home/deam_server/node_modules/mysql/lib/Connection.js:419:13)
at Object.onceWrapper (events.js:275:13)
at Socket.emit (events.js:182:13)
at Socket.EventEmitter.emit (domain.js:442:20)
at Socket._onTimeout (net.js:447:8)
at ontimeout (timers.js:427:11)
at tryOnTimeout (timers.js:289:5)
at listOnTimeout (timers.js:252:5)
at Timer.processTimers (timers.js:212:10)
Though the same code was running perfectly on my local machine. After that I used "df" command which helped me to realise that my root directory was 100% occupied. I allotted some memory to the root directory and the restarted the node instance and then it started working fine.
In my case, I was getting this error because the body of my post api was very large.