Вызов API с заголовком из R - PullRequest
0 голосов
/ 29 марта 2020

У меня есть API, как показано ниже. Этот пример кода для Node.js. Без заголовка легко вызвать API из R, но с заголовком я не смог бы это сделать. Адрес API и информация заголовка приведены в примере кода, так что кто может помочь мне преобразовать этот код в код R. Спасибо.

var request = require("request");

var options = {
  method: 'GET',
  url: 'https://covid-193.p.rapidapi.com/statistics',
  headers: {
    'x-rapidapi-host': 'covid-193.p.rapidapi.com',
    'x-rapidapi-key': 'cc818ada02msh65ebe8a8658d181p130600jsn1ee371ee7fbe'
  }
};

request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
});

1 Ответ

1 голос
/ 29 марта 2020

httr::add_headers просто требует "именованные значения заголовка" . Так что вам просто нужно

library(httr)

GET("https://covid-193.p.rapidapi.com/statistics")
# Response [https://covid-193.p.rapidapi.com/statistics]
#   Date: 2020-03-29 05:02
#   Status: 401
#   Content-Type: application/json
#   Size: 139 B

GET("https://covid-193.p.rapidapi.com/statistics",
    add_headers(`x-rapidapi-host`='covid-193.p.rapidapi.com',
                `x-rapidapi-key`= 'cc818ada02msh65ebe8a8658d181p130600jsn1ee371ee7fbe'))
# Response [https://covid-193.p.rapidapi.com/statistics]
#   Date: 2020-03-29 05:02
#   Status: 200
#   Content-Type: application/json
#   Size: 37.9 kB

Первый ответ - «401 Unauthorized», второй - «200 Success». Кстати, если этот ключ API важен для вас, вы можете отозвать его сейчас, когда он есть у остального мира.

...