我想得到一个POST请求的正文的原始文本使用R web服务器包Rook。
我已经注册了R应用程序:
parsePOST <- function(env) {
request <- Rook::Request$new(env)
body <- request$body()
print(body)
}
R.server$add(app = parsePost, name = "reportGeneratorApp")不幸的是,body是Rook::RhttpdInputStream。我尝试过的事情:
body <- request$body()$read_lines()
结果:
{\ncharacter(0)。此外,这些行在随机位置丢失了数据。
body <- request$body()$read_lines(10)
结果: [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。
我很惊讶地发现很难找回请求的身体。
发布于 2019-06-13 18:29:24
我能够以字符串的形式提取身体,如下所示:
writeLines(paste0(rawToChar(request$body()$read(), multiple = T), collapse=""))
read()方法返回字节,我将每个字节解析为字符向量,然后折叠字符向量。如果有人有更简单或更干净的方法来做这件事,请分享。
https://stackoverflow.com/questions/56586243
复制相似问题