我正在努力编写与以下curl命令等效的httr:POST语句(实际的client_id和client_secret被伪字符串替换):
curl -i -X POST -H "ContentType: x-www-form-urlencoded" -d
"grant_type=client_credentials&client_id=XXXXXXXX&client_secret=XXXXXXXX"
"https://api.beta.tab.com.au/oauth/token"
我尝试了以下似乎无效的方法:
POST("https://api.beta.tab.com.au/oauth/token",
add_headers('Content-Type'='application/json'),
body = list(grant_type = "client_credentials",
client_id = "XXXXXXXX",
client_secret = "XXXXXXXX"),
encode = "json")
我希望状态代码为200,但事实并非如此...
答案 0 :(得分:0)
我假设您上面的curl
命令正在运行。在检查curl -d
here的定义时,可以看到使用内容类型application / x-www-form-urlencoded将数据传递到服务器。但是,您正在使用json编码构建post命令。换句话说,您未在POST正文中发送相同的格式,并且我假设这是您的问题,因为您的服务器可能期望数据以 urlencoded格式而不是 json 。您应检查此quickstart并尝试在设置了详细标志的交互式会话中运行命令,以查看发送到服务器的内容。