there is the website https://cebcare.ceb.lk/Incognito/DemandMgmtSchedule and in there I can see an API call to https://cebcare.ceb.lk/Incognito/GetLoadSheddingEvents with StartTime
and EndTime
as form data.
I tried to send post request to above endpoint in Node.js using axios but I get the error AxiosError: unable to verify the first certificate
and code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
Then I saw that there are 2 Headers RequestVerificationToken
and Cookie
. I grabbed them and did a Postman request and got back a response with 200. But in Node.js when I do like
const data = {
StartTime: startDate,
EndTime: endDate,
};
const response = await axios.post(URL, data, {
"Content-Type": "multipart/form-data",
Cookie:
".AspNetCore.Antiforgery.ThOcTlhnrMo=CfDJ8Nr2EC612OFAjHvozOYXtlRQE9n05fuSOD0jEvKY0unmx8QyMYxdCfmotrhzVIKzurnhpkY_MtfAP9cmpR11u8rzt7_xz4IkuWMURwfelg7ymSJ8GaksLVwEgbMIkEDfrvjb5II6EzzTaLA5RiXRDXU",
RequestVerificationToken:
"CfDJ8Nr2EC612OFAjHvozOYXtlRBtAUjb36TUpOhI0yuLADjcckB_h1xKJWHDwl0MrqyE4_4pU_YXUkeh5uI66UBXedMcMmihENJ5hpfW_vBgNWZJ-JtliiE4UYvxNJCvvhmGvIWSKWeeqx-llCxrPio9Tw",
});
I get the same error as above
Is there a way to fix this. Or somehow bypass the Cookie
and RequestVerificationToken
. Or can I hardcode these 2 values and send request?
EDIT I did the following after looking at the linked post
const httpsAgent = new https.Agent({ rejectUnauthorized: false });
const response = await axios.post(URL, data, {
httpsAgent,
"Content-Type": "multipart/form-data",
Cookie:
".AspNetCore.Antiforgery.ThOcTlhnrMo=CfDJ8Nr2EC612OFAjHvozOYXtlRQE9n05fuSOD0jEvKY0unmx8QyMYxdCfmotrhzVIKzurnhpkY_MtfAP9cmpR11u8rzt7_xz4IkuWMURwfelg7ymSJ8GaksLVwEgbMIkEDfrvjb5II6EzzTaLA5RiXRDXU",
RequestVerificationToken:
"CfDJ8Nr2EC612OFAjHvozOYXtlRBtAUjb36TUpOhI0yuLADjcckB_h1xKJWHDwl0MrqyE4_4pU_YXUkeh5uI66UBXedMcMmihENJ5hpfW_vBgNWZJ-JtliiE4UYvxNJCvvhmGvIWSKWeeqx-llCxrPio9Tw",
});
but now I'm getting Bad Request 400. But in postman Im getting the results for the same Cookie
and RequestVerificationToken