在R SHINY应用程序中接受HTTP请求 [英] Accept HTTP Request in R shiny application

查看:17
本文介绍了在R SHINY应用程序中接受HTTP请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我制作了一个闪亮的应用,它需要从另一台服务器获取数据,即在打开闪亮的应用时,另一台服务器会向该闪亮的应用发送请求,以打开该应用并为其提供所需的数据。

要模拟这一过程,当我在Firefox中打开R Shiny应用程序时,我可以向该应用程序发送以下内容:

 http://localhost:3838/benchmark-module/?transformerData=data/TransformerDataSampleForShiny.json
这是一个简单的GET请求,它发送名为: "变压器数据" 内容为"Data/TransformerDataSampleForShing.json"的应用程序。

当我使用代码时,它工作正常:

#(Abridged code, I am only showing the start of the code)
 shinyServer(function(input, output) {
 jsonFile <- "data/TransformerDataSampleForShiny.json"
 JSONdata <- fromJSON(jsonFile)
但是,当我想做完全相同的事情时,除了硬编码字符串"data/TransformerDataSampleForShiny.json"之外,我想从上面的http请求接收该字符串。我该怎么做??我已尝试代码:

shinyServer(function(input, output) {
jsonFile <- input$transformerData
JSONdata <- fromJSON(jsonFile)

我也试过了:

....
jsonFile <- input$TransformerData

但这些都没有起作用。

因此,主要问题是,我如何编写代码来接收HTTP请求?我希望接收来自HTTP GET请求的字符串和/或来自POST请求的JSON文件。

我只是想澄清一下,我不想从R那里发送帖子或获取请求。我想要接收它们。我无法使用HTTR包或HttpRequest包接收

非常感谢!

推荐答案

您可以使用session$clientData接收GET请求。示例运行以下

library(shiny)
runApp(list(
  ui = bootstrapPage(
    textOutput('text')
  ),
  server = function(input, output, session) {
    output$text <- renderText({
      query <- parseQueryString(session$clientData$url_search)
      paste(names(query), query, sep = "=", collapse=", ")
    })
  }
), port = 5678, launch.browser = FALSE)

并导航到

http://127.0.0.1:5678/?transformerData=data/TransformerDataSampleForShiny.json

有关公开POST请求的方法,请参阅@Xin Yen Answer。

这篇关于在R SHINY应用程序中接受HTTP请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆