将 cURL 语句转换为 HTTR

Converting cURL statement to HTTR

我有一个用 cURL 编写的声明,看起来像这样:

curl --request POST \
     --url https://api.secure.com/v1/Test \
     --header 'Accept: application/json' \
     --header 'Authorization: Basic 123456789==' \
     --header 'Content-Type: application/json' \
     --data '{"playerId":12827}'

我知道如何分割它,看起来像这样:

POST(
  'https://api.secure.com/v1/Test',
  accept_json(),
  add_headers(Accept = 'application/json',
              Authorization = APIKey)
)

但是我迷路了,我在 httr 包文档中找不到如何处理数据标志 (--data '{"playerId":12827})

最好的方法是什么?

您需要实际发送数据并设置正确的内容类型。您可以使用 content_type_json()body= 参数执行此操作(将您的数据作为列表传递,POST 将为您将其转换为 JSON)。

APIKey <- "123456789=="
POST(
  'https://api.secure.com/v1/Test',     # --url https://api.secure.com/v1/Test \
  accept_json(),                        # --header 'Accept: application/json'
  content_type_json(),                  # --header 'Content-Type: application/json'
  add_headers(Authorization = APIKey),  # --header 'Authorization: Basic 123456789=='
  encode = "json",
  body=list(playerId = 12827)           # --data '{"playerId":12827}'
)