Using AXIOS to POST to external server API to retrieve SSOID

259 Views Asked by At

In short: Here is some Python code posting to Betfair API. I would like to use Axios to do the same thing.

resp = requests.post('https://identitysso-cert.betfair.com/api/certlogin',
                     data=payload, cert=('TestApp.crt', 'client-2048.key'), headers=headers)

I'm reading through AXIOS docs, and am curious how to apply the cert=('TestApp.crt', 'cient-2048.key') field.

In detail: Currently, I have this:

axios({
  method: "POST",
  headers: headers,
  url: "https://identitysso-cert.betfair.com/api/certlogin",
  data: payload,
});

Would I use the form-data library replacing cert=('TestApp.crt', 'cient-2048.key') with form<FormData>

const FormData = require("form-data");

const form = new FormData();
form.append("my_field", "my value");
form.append("my_buffer", new Buffer(10));
form.append("my_file", fs.createReadStream("/foo/bar.jpg"));

axios.post("https://example.com", form, { headers: form.getHeaders() });

EDIT:

Scrapped the FormData route, and am using HTTPS for node js.

I add this along with the options I provide to Axios.

const httpsAgent = new https.Agent({
  cert: fs.readFileSync("certificat.crt"),
  ca: fs.readFileSync("key.pem"),
});

I in turn get this error:

Error: "Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN"

1

There are 1 best solutions below

0
On

Digging a little deeper,

The error SELF_SIGNED_CERT_IN_CHAIN means that you cannot use self-signed certificates.

I ended up using Python to accomplish what I needed.