带有 JSON 输入的 Digital Ocean 发布请求在管道工 API 中返回空白

问题描述

我的管道工功能在本地正常运行(创建两个 R 会话并将发布请求从一个工作发送到另一个工作)。但是,当对 digitalocean 服务器执行相同操作时,它返回空字符串。

管道工 API

# plumber.R


#* @post /
#* @get /
function(req){
  
  tryCatch({
  
  list( rawbody = req$postBody )

  },error = function(e) {

        return( jsonlite::toJSON( list('error' = e),force = T ) )
  })
  
}

POST 请求


rm( list = ls() )

library(httr)
library(jsonlite)
options(stringsAsFactors = FALSE)

# url for local testing
url <- "http://127.0.0.1:6531"   #... have changed URL to server url when testing for server

body = list( 'msg' = 'hi' )

# set API path
path <- 'data'

# send POST Request to API
raw.result <- POST(url = url,path = path,body = body,encode = 'json')

# check status code
raw.result$status_code

# check response
fromJSON(rawtochar(raw.result$content))

请注意 GET 请求工作正常,但使用 JSON 发送数据不起作用。

服务器 url 的输出

fromJSON(rawtochar(raw.result$content))
$rawbody
[1] ""

本地网址输出

fromJSON(rawtochar(raw.result$content))
$rawbody
[1] "hi"

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...