3

我测试了在 POST 请求中附加一个 STL 文件作为正文。配置:Windows 10、Postman(POST->二进制)、R 3.4.2。POST 请求的 R 代码如下所示:

#' @post /endpointname
function(req) {
    rawstl = req$postBody  # STL file is attached as Binary in Postman.
    rawData1 = as.raw(unlist(lapply(rawstl, charToRaw)))
    ## E.g. 43 4f 4c 4f 52 3d ...
    ...
}

其输出与使用以下方法对 STL 文件进行直接二进制读取相同:

 con = file(fileName, "rb")
 rawData2 = readBin(con, "raw", n=100, size=1, endian="little")

但是,如果使用 Plumber 版本(上图),则会缺少一些部件。我认为原因可能是处理或引入行尾的方式,或者管道工的默认过滤器。

缺失值出现在 req$postBody 的元素之间:例如 while rawData2hold [a, b, c, d, e, f, g],rawData1hold [a, b, e, f]。上面函数中的 R 对象rawstl的长度 > 1 并且缺失值出现在那里的子列表之间。

我玩了一段时间,但我不知道是什么坏了。

4

0 回答 0