Использование AXIOS для отправки на внешний сервер API для получения SSOID

#api #post #axios #betfair

Вопрос:

Короче говоря: Вот несколько сообщений кода Python в API Betfair. Я хотел бы использовать Axios, чтобы сделать то же самое.

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

Я читаю документы AXIOS и мне любопытно, как применить поле cert=(‘TestApp.crt’, ‘cient-2048.key’).

Подробно: В настоящее время у меня есть это:

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

Буду ли я использовать библиотеку данных формы, заменив cert=('TestApp.crt', 'cient-2048.key') ее 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() });
 

Редактировать:

Отказался от маршрута FormData и использую HTTPS для узла js.

Я добавляю это вместе с опциями, которые я предоставляю Axios.

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

Я, в свою очередь, получаю эту ошибку:

Ошибка: «Ошибка: Ошибка SSL: SELF_SIGNED_CERT_IN_CHAIN»

Ответ №1:

Копаем немного глубже,

Ошибка SELF_SIGNED_CERT_IN_CHAIN означает, что вы не можете использовать самозаверяющие сертификаты.

В итоге я использовал Python для достижения того, что мне было нужно.