You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求获取Anbima Access Token时的请求体格式问题求助

解决Anbima Access Token请求体格式问题

问题根源

你当前定义body_anbima的方式是错误的,{"grant_type:client_credentials"}不是合法的R对象,也不符合API要求的JSON结构。API需要的是包含键值对的JSON对象,而非字符串或错误语法结构。

修正后的代码

直接在R中构造列表对象,配合httr的encode='json'参数即可生成正确请求体:

library(httr)
library(jsonlite)

# 生成Basic认证的base64编码
token_anbima <- base64_enc("aC2yaac23:1bhS45TT")

# 正确构造请求体:用R列表表示键值对
body_anbima <- list(grant_type = "client_credentials")

# 发送POST请求
res <- POST('https://api.anbima.com.br/oauth/access-token',
            add_headers(Authorization = paste("Basic", token_anbima)),
            # encode='json'会自动处理Content-Type和JSON转换,无需手动设置请求头
            body = body_anbima,
            encode = 'json',
            verbose()
)

# 查看响应结果
res
rawToChar(res$content)

关键说明

  • 用R的list()构造键值对,httr的encode='json'参数会自动将列表转换为符合要求的JSON格式,同时自动设置正确的Content-Type: application/json请求头,无需手动添加。
  • 避免手动拼接JSON字符串(比如"{\"grant_type\":\"client_credentials\"}"),这种方式易出现语法错误,维护性差。
  • 如果一定要用jsonlite::toJSON,写法应为toJSON(list(grant_type = "client_credentials"), auto_unbox = TRUE),但配合encode='json'时,直接传列表更简洁。

内容的提问来源于stack exchange,提问作者Carlos Eduardo Barros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:21:36