在命令行工具卷曲中使用R完成-X POST

时间:2015-11-04 20:56:19

标签: r curl rcurl

我使用命令行工具curl发布数据并从服务器获取响应,命令如下:

curl -X POST -H 'Content-Type: application/gpx+xml' -H 'Accept: application/json' --data-binary @gpslog.gpx "http://test.roadmatching.com/rest/mapmatch/?app_id=MY_APPID&app_key=MY_APPKEY" -o output.json

我尝试使用RCurl包做同样的事情,但它不起作用。有人能指出我正确的方向吗?感谢。

postForm(uri = "http://test.roadmatching.com/rest/mapmatch/?app_id=MYID&app_key=MYKEY",
    .ops = list(httpheader = c('Content-type': 'application/gpx','Accept': 'application/json')),
    .params = "/Users/data.gpx")

1 个答案:

答案 0 :(得分:2)

使用httr - 未经过测试,您可能需要稍微调整一下

url <- "http://test.roadmatching.com/rest/mapmatch"
args <- list(app_id = "MY_APPID", app_key = "MY_APPKEY")
gpxxml <- add_headers(`Content-Type` = "application/gpx+xml")
httr::POST(url, query = args, gpxxml, accept_json(), 
           write_disk("output.json"), body = upload_file("gpslog.gpx"))