Home > Blockchain >  Cannot make axios post request in Node.js to an API endpoint not owned by me
Cannot make axios post request in Node.js to an API endpoint not owned by me

Time:12-21

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

CodePudding user response:

The third parameter of the axios post function takes an "Options" object - as for your case to pass the headers you should write like this:

{ 
   headers: {
                'Content-Type:'multipart/form-data',
                Cookie: "",
                RequestVerificationToken: ""
            } 
}
  • Related