axios 请求 url 地址,判断网络地址是否存在

时间:2024-04-14 19:09:42
const axios = require('axios'); async function isUrlReachable(url) { try { const response = await axios.get(url, { timeout: 5000, // 设置请求超时时间,例如5秒 headers: { // 你可以在这里添加自定义的请求头,例如: // 'User-Agent': 'your-custom-user-agent' }, // 如果只需要检查连接性,而不关心响应内容,可以设置 validateStatus validateStatus: status => status >= 200 && status < 300, }); // 如果请求成功,并且状态码在200-299之间,那么可以认为URL是可连接的 if (response.status >= 200 && response.status < 300) { return true; } else { // 如果状态码不在200-299之间,但请求仍然成功(例如重定向),你可能需要根据你的需求来处理 console.log(`Unexpected status code: ${response.status}`); return false; } } catch (error) { // 如果请求失败(例如网络错误、超时、4xx/5xx状态码等),那么URL不可连接 if (axios.isCancel(error)) { // 如果请求被取消(例如因为超时),可以在这里处理 console.log('Request canceled', error.message); } else if (error.code) { // 处理特定的错误代码,例如 'ECONNABORTED' 表示连接被中止 console.log(`Error code: ${error.code}`); } else { // 处理其他错误情况 console.error('Error', error.message); } return false; } } // 使用示例 const url = 'https://example.com'; isUrlReachable(url).then(reachable => { console.log(`URL is reachable: ${reachable}`); });