【问题标题】:R httr put requetsr httr 获取请求
【发布时间】:2016-09-28 18:14:11
【问题描述】:

我正在尝试将一些 PUT 请求插入到我拥有的一些遗留 R 代码中,这些代码在小型数据库上执行日常 ETL。这些请求会将用户添加到 MailChimp 中的电子邮件邮件列表中。

我已经能够将我的 GET 请求格式化为 R(特别是 httr 包)接受的语法:

GET("https://us10.api.mailchimp.com/3.0/lists/list_id_XXXXX/members/MEMBER_HASH_#######", query = list(apikey = 'XXXXXXXXXXXXXX'))

但是,当我尝试对 PUT 请求执行类似操作时,这种简单的语法不起作用 - 您不能直接通过 URL 传递 API KEY 和/或请求的参数。如果我使用与 GET 相同的语法,则会收到 401 错误。

我相信我需要使用 CONFIG 选项来传递 API 密钥(使用 AUTHENTICATE 或 ADD_HEADERS)和 BODY 中的请求参数以使 PUT 请求工作,但我无法让语法工作 -这给出了 400 错误:

auth https://us10.api.mailchimp.com/3.0/lists/list_id_XXXXX/members/MEMBER_HASH_#######",config=auth,body=parms,encode="json")

如果有人能给我指出一个更简洁的例子,那将是惊人的......但即使只是一些关于如何获取有关我的错误消息的更多信息以帮助我解决语法问题的提示也会有很大帮助。

谢谢。

【问题讨论】:

    标签: r syntax put httr


    【解决方案1】:

    从 R 用户组邮件列表中获得了一些帮助...下面的代码现在可以运行并将 PUT 请求发送到 API。

    auth         <- authenticate("<USER_NAME>", "<API KEY>", type = "basic")
    params       <- list(email_address = email_to_add, status_if_new ="subscribed")
    path         <- "https://us10.api.mailchimp.com/3.0/lists/xxxxxxxx/members/hash_email_to_add"
    path         <- gsub('hash_email_to_add',digest(email_to_add,algo="md5",serialize=F),path)
    
    PUT(url=path,
    config = auth,
    body = params,
    encode = "json"
    

    )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多