首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R Rook中解析POST主体

在R Rook中解析POST主体
EN

Stack Overflow用户
提问于 2019-06-13 18:05:15
回答 1查看 188关注 0票数 0

我想得到一个POST请求的正文的原始文本使用R web服务器包Rook。

我已经注册了R应用程序:

代码语言:javascript
复制
parsePOST <- function(env) {
  request <- Rook::Request$new(env)

  body <- request$body()
  print(body)
}

R.server$add(app = parsePost, name = "reportGeneratorApp")

不幸的是,bodyRook::RhttpdInputStream。我尝试过的事情:

  1. 这只提供了第一行: body <- request$body()$read_lines() 结果: {\n
  2. 这只提供了主体的开始,而不管“内容长度”标头。所有其他读行都是character(0)。此外,这些行在随机位置丢失了数据。 body <- request$body()$read_lines(10) 结果:
代码语言:javascript
复制
   [2] " \"data\": {\n   "                                                                                                                        
   [3] "evious\": [\n      2\n    ],\n    \"v"                                                                                                    
   [4] "e\": {\n        \"Differentially private me"                                                                                              
   [5] "              \"values\": [\n                44.39"                                                                                       
   [6] "an mechanismLaplace\"\n              ],\n              \"arguments\": ["                                                                  
   [7] "         },\n            \"batch\": [\n              1\n            ]\n          }\n    "                                                 
   [8] "\n            ]\n          }\n        }\n      },\n      \"educ_income\": {\n        \"ols\": {\n          \"ols0\": {\n            \"rel"
   [9] ""                                                                                                                                         
  [10] ""                                                                                                                                         

POST请求由邮递员发送,头部为Content-Type: application/json

我很惊讶地发现很难找回请求的身体。

EN

回答 1

Stack Overflow用户

发布于 2019-06-13 18:29:24

我能够以字符串的形式提取身体,如下所示:

writeLines(paste0(rawToChar(request$body()$read(), multiple = T), collapse=""))

read()方法返回字节,我将每个字节解析为字符向量,然后折叠字符向量。如果有人有更简单或更干净的方法来做这件事,请分享。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56586243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档