【问题标题】:Use RapidAPI's SkyScanner integration using httr通过 httr 使用 RapidAPI 的 SkyScanner 集成
【发布时间】:2021-05-24 20:26:20
【问题描述】:

我正在尝试使用 httr 和来自 rapidapi.com 的代码 sn-p 来使用天空扫描仪 API。这是我第一次尝试。

我的问题是直接从网站复制的代码不起作用,这是因为代码中有 '

如何调试此错误以便我可以使用 API?

library(httr)

url0 <- "https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/reference/v1.0/currencies"
API_KEY <- 'my_API_key'
HOST_URL <- 'skyscanner-skyscanner-flight-search-v1.p.rapidapi.com'
response <- VERB(verb="GET",
                  url=url0, 
                 config = httr::add_headers(x_rapidapi-key = API_KEY , x_rapidapi-host = HOST_URL,'),
                 encode = content_type("application/octet-stream"))

content(response, "text")

Edit-1

我在此处的网站上找到了一篇文章,解释该网站在代码 sn-p 中给出了 2 个错误,并建议 altering the code。然而,这给出了一个不同的错误。我无法正确输入response 对象。

library(httr)

url <- "https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/reference/v1.0/currencies"
API_KEY <-  'my_API_key'

response <- VERB("GET",
                 url,
                 add_headers(x-rapidapi-key = API_KEY,
                             x-rapidapi-host = "skyscanner-skyscanner-flight-search-v1.p.rapidapi.com"),
                 content_type("application/octet-stream"))

content(response,"text")

【问题讨论】:

    标签: r api httr skyscanner rapidapi


    【解决方案1】:

    我不确定这是否是正确的响应,但是您的第一个代码 sn-p 就像您说的那样在末尾有额外的 ':

    config = httr::add_headers(x_rapidapi-key = API_KEY , x_rapidapi-host = HOST_URL,'),
    

    试着换成

    config = httr::add_headers(x_rapidapi-key = API_KEY , x_rapidapi-host = HOST_URL),
    

    我会尝试:

    library(httr)
    
    url0 <- "https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/reference/v1.0/currencies"
    API_KEY <- 'my_API_key'
    HOST_URL <- 'skyscanner-skyscanner-flight-search-v1.p.rapidapi.com'
    response <- VERB(verb="GET",
                      url=url0, 
                     config = httr::add_headers(x_rapidapi-key = API_KEY, x_rapidapi-host = HOST_URL, content_type("application/octet-stream")))
    

    然后通过response查看回复

    【讨论】:

    • 谢谢@otsu,我保留了它,因为这是网站给你的代码sn-p。
    【解决方案2】:

    我找到了解决问题的办法。这应该更正代码 sn-p 并让它在 R 中运行。

    # Correct
    library(httr)
    
    url <- "https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/reference/v1.0/currencies"
    API_KEY <- "your_key"
    
    response <- VERB("GET",
                     url,
                     add_headers("x-rapidapi-key" = API_KEY,
                                 "x-rapidapi-host" = "skyscanner-skyscanner-flight-search-v1.p.rapidapi.com"),
                     content_type("application/octet-stream"))
    
    content(response,"text")
    
    Robject <- content(response, "text")
    Robject
    

    这更正了 rapid API 的 sn-p 上的确切代码。

    【讨论】:

      【解决方案3】:

      始终使用 RapidAPI 提供的代码 sn-p。它是真实的并且总是有效的。它们通过 40 个不同的库为 20 种编程语言提供支持。

      试试这个代码 sn-p:

          library(httr)
          url <- "https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/reference/v1.0/currencies"
          
          response <- VERB("GET", url, add_headers(x_rapidapi-host = 'skyscanner-skyscanner-flight-search-v1.p.rapidapi.com', x_rapidapi-key = '*****************************', '), content_type("application/octet-stream"))
          
          content(response, "text")
      

      【讨论】:

      • 如果你仔细看,那里有 3 个错误。额外的 ` ,“x_rapidapi-key”需要像“x_rapidapi_key”这样的下划线和像“x_rapidapi_host”这样的x_rapidapi-host。这是一个小错误,您必须手动修复。你那里的代码不起作用。
      猜你喜欢
      • 1970-01-01
      • 2021-08-14
      • 2021-08-09
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2023-01-27
      • 1970-01-01
      相关资源
      最近更新 更多