2016-12-13 31 views
0

このCurl POSTをRで書く正しい方法は何ですか? Rは、ファイルの内容をポストフォームの「値」として読み取らせたいと考えています。Curl POST in 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>' 

これまでのところ、私はthis-

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)) 

を持っていることは、 "エラー:不正な要求" を返します
は、私はまた、HTTRポスト要求 -

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

を使用して、それを試してみました。ここupload_fileではありませんファイルの内容をアップロードしていますが、ファイルへのパス(文字列として)を "値"パルメータに渡していると思います。 当然、正しい結果が返されません。

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!" 
+0

'values = upload_file(file.name)'を別々に実行し、 'values'オブジェクトの外観を見てください。ファイルパス以外のものが含まれている場合は、 'as.character(upload_file(file.name))'のような処理をする必要があります。ファイルタイプを 'upload_file()'の中の 'type'パラメータに渡すこともできます。 –

答えて

0

私は

file=readLines(".../output 1.txt") 
inputValues <- paste(file,collapse="\n") 

を使用して、valuesパラメータでinputValuesを渡すことによって、これを解決することができます。