在R SHINY应用程序中接受HTTP请求 [英] Accept HTTP Request in R shiny application
本文介绍了在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屋!
查看全文