所以我已经看过一些关于使用httr的GET和POST请求的帖子,但我想弄清楚如何在我公司的数据库中更新一个值,并试图找出如何使用这些功能。特别是,我正在努力如何格式化body参数。例如,浏览一下我的数据库:
library("httr")
# I can do a post request to grab data from the companys db (they told me to use POST instead of GET)
my_request <- httr::POST("https://mycompany.com/ourdb/data/userInfo/",
body = '{}',
httr::add_headers(
'X-login-Key' = '12345678',
'OS-Version' = 'iOS 10.3.1',
'User-Agent' = 'company/1.2.3.456',
'Content-Type' = 'application/json',
'X-Access-Token' = 'dkdfjueek12384kdndcos/da8L9u0=',
'Nonce' = '1',
'Accept' = 'application/json'),
), encode = "json")
http_status(my_request)$category
[1] "Success"
mycontent = content(my_request)
names(mycontent)
[1] "nonce" "templateJson" "settingsJson" "plusButtonTree" "templateVersion"
mycontent$settingsJson$user_gender
[1] 1
我想更改数据库中的user_gender值,从1到2(或任何其他数字)。我想我必须使用 body 参数来执行此操作,但我不知道如何执行此操作。此外,我不确定我是否应该使用PUT或PATCH动词/功能。
提前感谢您的帮助!
答案 0 :(得分:0)
这可能是对原始海报的回应为时已晚,但供以后参考:
httr
软件包具有支持PUT和PATCH请求的功能,可以使用与POST请求相同的参数来调用它们。 my_request <- httr::PUT("https://mycompany.com/ourdb/data/userInfo/",
body = '{"foo":"bar"}',
httr::add_headers(
'X-login-Key' = '12345678',
'OS-Version' = 'iOS 10.3.1',
'User-Agent' = 'company/1.2.3.456',
'Content-Type' = 'application/json',
'X-Access-Token' = 'dkdfjueek12384kdndcos/da8L9u0=',
'Nonce' = '1',
'Accept' = 'application/json'), encode = "json")
关于更新原始发布者引用的数据库中信息的细节,必须通过为此设置的API文档来确认实际更新公司数据库中值的方法。要使PUT或PATCH请求被建立以更新数据,它们必须具有特定的路由才能起作用。
否则,与数据库进行交互的服务器将返回404状态代码,并且不会更新数据库。