【问题标题】:HTTP POST using httr in R在 R 中使用 httr 的 HTTP POST
【发布时间】:2019-09-02 07:51:26
【问题描述】:

我正在尝试将我的 curl 请求从在 Terminal 中运行它调整为 R。为此,我使用httr 包。我的请求如下,来自Terminal

curl -u user@email.com:password -H "Content-Type:application/json" -X POST "https://catalogue.onda-dias.eu/dias-catalogue/Products(48809a01-71bc-4669-8639-f0528abcdafe)/Ens.Order"

我尝试使用httrPOST函数如下:

pars <- list(username='user@email.com', password='password')

res<-POST("https://catalogue.onda-dias.eu/dias-catalogue/Products(48809a01-71bc-4669-8639-f0528abcdafe)/Ens.Order", body = pars, add_headers('Content-Type'='application/json'))

我收到 401 错误代码。你知道我应该如何正确转换我的请求吗?

【问题讨论】:

    标签: r curl post web-scraping httr


    【解决方案1】:

    尝试使用 httr:authenticate

    require(httr)
    
    headers = c('Content-Type' = 'application/json')
    
    r <- httr::POST(  url = 'https://catalogue.onda-dias.eu/dias-catalogue/Products(48809a01-71bc-4669-8639-f0528abcdafe)/Ens.Order'
                      , httr::add_headers(.headers=headers)
                      , httr::authenticate('user@email.com', 'password'))
    

    【讨论】:

    • 我更改了变量 headers 的名称,因为它会导致 POST 函数混淆。这似乎是一个 pck 功能。这样做,我避免了错误并且脚本工作正常。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    相关资源
    最近更新 更多