用HTTParty在body中发送带有数组的POST请求。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用HTTParty在body中发送带有数组的POST请求。相关的知识,希望对你有一定的参考价值。

我试图通过Buttondown API创建新的订阅者。

文件在这里.

api期望以下主体。

{
  "email": "string",
  "notes": "string",
  "referrer_url": "string",
  "tags": [
    "string"
  ]
}

电子邮件字段是必须的,其他都是可选的。

我可以成功地创建一个新的订阅者,但是,我无法添加任何标签。但是,我无法添加任何标签。

我已经创建了一个名为 "marketing "的标签,并确认它的存在。

我像这样创建一个新的订阅者。

  body = {
    'email': params[:email],
    'referrer_url': params[:referer],
    'tags': ['marketing']
  }

  res = HTTParty.post(
          'https://api.buttondown.email/v1/subscribers', 
          body: body,
          headers: headers
        )

我希望上面的方法能创建一个新的订阅者,并带有以下内容 营销 标签。但是,从响应来看,这个标签并没有进入记录。

{
  "creation_date"=>"2020-04-22T16:06:22.114523Z",
   "email"=>"user@example.com",
   "id"=>"********-****-****-****-************",
   "notes"=>"",
   "referrer_url"=>"http://localhost:3000/",
   "metadata"=>{},
   "secondary_id"=>18,
   "subscriber_type"=>"regular",
   "source"=>"api",
   "tags"=>[],
   "utm_campaign"=>"",
   "utm_medium"=>"",
   "utm_source"=>""
}

我发送数组是否正确?我的POST请求是否正确?Buttondown文档中是否有任何内容表明我没有正确发送标签?

答案

作为"... 挑夫 说,我需要在标题中设置内容类型,并调用 to_json 身上的。

    headers = {
      ...
      'Content-Type' => 'application/json'
    }
    res = HTTParty.post(
      'https://api.buttondown.email/v1/subscribers', 
      body: body.to_json,
      headers: headers
    )

以上是关于用HTTParty在body中发送带有数组的POST请求。的主要内容,如果未能解决你的问题,请参考以下文章

HTTParty无法发送长JSON [重复]

Ruby HTTParty - 获取重定向的 URL

使用 HTTParty 发送多个文件

如何在body参数改造android中发送数组请求

如何在 Flutter 中使用带有打印机名称的以太网 POS 打印机打印收据?

HTTParty 和通过令牌授权