通过POST请求发送gzip压缩数据

时间:2012-06-23 02:26:20

标签: r

我正在尝试将列表编码为JSON,在Rcompression中使用gzip对其进行压缩,然后使用RCurl中的POST请求将其发送到服务器。

# COMPRESS THE REQUEST
all <- list(this=1,is=2,a=3,list=4)
json <- toJSON(all)
gzip <- gzip(json)

# SEND IT TO THE SERVER
status <- postForm(SERVER_URI,data=fileUpload(contents=gzip,contentType="application/x-gzip"),style="HTTPPOST",binary=TRUE)

但是,当我尝试将数据发布到服务器时,出现以下错误:

Error in postForm(SERVER_URI, data = gzip) : 
  STRING_ELT() can only be applied to a 'character vector', not a 'raw'

我理解gzip数据是原始格式,而postForm函数不喜欢这样,但我不清楚如何解决通过POST请求将原始数据发送到服务器的问题。

1 个答案:

答案 0 :(得分:1)

RCurl的官方paper表示POSTing二进制数据尚未实现,并在“未来工作”下的文档中列出。因此,自文件发布以来,RCurl可能还没有解决方案。