在R中写出卷曲POST

时间:2016-12-13 09:03:39

标签: r curl

在R中编写此Curl POST的正确方法是什么? 我想让R读取文件的内容为"值"在帖子中。

curl -X POST https://api.priceapi.com/jobs \  
   -d "token=token" \  
   -d "country=country" \  
   -d "source=source" \  
   -d "currentness=currentness" \  
   -d "completeness=completeness" \  
   -d "key=key" \  
   -d 'values=<values>'  

到目前为止,我有这个 -

library(RCurl)  
library(RJSONIO)  
url = "https://api.priceapi.com/jobs"  
file.name = ".../output 1 .txt"  
results = postForm(url, token="token",   
                    country="country,  
                    source="source",   
                    currentness="currentness",  
                    completeness="completeness,  
                    key="key",  
                    values=fileUpload(filename = file.name))  

它返回&#34;错误:错误请求&#34;
我也尝试使用httr post request -

r = POST(url, body = list(token="token",   
                    country="country,  
                    source="source",   
                    currentness="currentness",  
                    completeness="completeness,  
                    key="key",  
                    values=upload_file(file.name)) )  

这里upload_file没有上传文件的内容,但我猜它是将文件路径(作为字符串)传递给&#34;值&#34; parmeter。 当然,这不会返回正确的结果。

httr POST请求的结果是;

  Response [https://api.priceapi.com/jobs]
  Date: 2016-12-13 10:11
  Status: 400
  Content-Type: application/json; charset=utf-8
  Size: 228 B
{
    "success": false,
    "reason": "parameter value invalid",
    "parameter": "value",
    "valid values": "An array or a string containing values separated by newline",
    "comment": "Make sure the parameter 'value' has a valid value!"

1 个答案:

答案 0 :(得分:0)

我可以使用

来解决这个问题
file=readLines(".../output 1.txt")
inputValues <- paste(file,collapse="\n")

然后在inputValues参数中传递values