如何解决节点 JS 请求为 nse 印度网站返回响应代码 401
我使用这个程序从 https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY 获取 json 数据,但从今天早上开始它没有工作,因为它返回
解决方法
我用 node js 尝试了同样的事情 请使用 node js ide link here for online ide 请检查我的代码
const axios = require('axios');
let cookie;
let url_oc = "https://www.nseindia.com/option-chain"
let url = "https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY"
let headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','accept-language': 'en,gu;q=0.9,hi;q=0.8','accept-encoding': 'gzip,deflate,br'
}
const instance = axios.create({
baseURL: url_oc,headers: headers,cookie: cookie ? cookie : ""
});
const getCookies = async () => {
try {
const response = await instance.get(url_oc);
cookie = response.headers['set-cookie'].join();
} catch (error) {
if (error.response.status === 403) {
console.log("getCookies =========> error.status === 403");
await getCookies()
} else {
console.log("getCookies =========> error");
}
}
}
const getAPIData = async () => {
try {
if (cookie) {
const response = await instance.get(url);
console.log(response.data.records.timestamp);
}
} catch (error) {
if (error.response && error.response.status === 401) {
console.log("getAPIData =========> error.status === 401");
if (!cookie) {
console.log("getAPIData =========> cookie not found");
await getCookies()
}
await getAPIData()
} else {
console.log("getAPIData =========> error");
}
}
}
(async () => {
setInterval(async () => {
await getCookies()
},5000);
setInterval(async () => {
await getAPIData()
},3000);
})()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。