带有自定义标头和正文的Ruby POST?

巴斯

我正在尝试使用Ruby POST到Mailchimp,但是我无法使用具有自定义标头和正文的任何​​代码。这是我要复制的请求:

curl --request GET \
--url 'https://<dc>.api.mailchimp.com/3.0/' \
--user 'anystring:<your_apikey>'

但我还必须添加一个JSON正文。

如果我运行此代码:

postData = Net::HTTP.post_form(URI.parse('https://xxx.api.mailchimp.com/3.0/lists/xxx/members/'), { ... }})
puts postData.body

我收到Mailchimp的答复,提示缺少apikey。如何添加API密钥?

基于这些帖子:Ruby对https的请求-“在`read_nonblock'中:对等方重置连接(Errno :: ECONNRESET)”

Ruby发送JSON请求

我尝试了这个:

uri = URI('https://xxx.api.mailchimp.com/3.0/lists/xxxx/members/')
req = Net::HTTP::Post.new(uri, initheader = {'Content-Type' =>'application/json'})
req.basic_auth 'anystring', 'xxxx'
req.body = URI.encode_www_form({ ... }})
response = Net::HTTP.new(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https').start {|http| http.request(req) }
puts "Response #{response.code} #{response.message}:#{response.body}"

但我得到了错误TypeError (no implicit of Hash into String)response = ...在线。错误指的是什么,我该如何解决?

更新:

使用start代替new

response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') {|http| http.request(req) }

我能够发送请求,但得到400响应:“我们遇到了未指定的JSON解析错误”

我得到与发布答案相同的答复。这是我的JSON:

{'email_address' => '[email protected]', 'status' => 'subscribed', 'merge_fields' => {'FNAME' => 'xxx', 'LNAME' => 'xxx' }

我还尝试过添加数据,如下所示:

req.set_form_data('email_address' => '[email protected]', 'status' => 'subscribed', 'merge_fields' => {'FNAME' => 'xxx', 'LNAME' => 'xxx' } )

但我得到相同的JSON解析错误

魔术师

尝试一下(如果它对您有用)

uri = URI('https://api.mailchimp.com/3.0/lists/xxxx/members/')

Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
  req = Net::HTTP::Post.new(uri)
  req['Content-Type'] = 'application/json'
  req.basic_auth 'username', 'password'
  req.set_form_data('from' => '2005-01-01', 'to' => '2005-03-31')

  response = http.request req # Net::HTTPResponse object
end

您需要在post请求中设置表单数据,例如

req.set_form_data('from' => '2005-01-01', 'to' => '2005-03-31')

更新:

尝试发布原始数据,例如

json_data = {'from' => '2005-01-01', 'to' => '2005-03-31'}.to_json
req.body = json_data

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有CORS和自定义标头的AngularJS

来自分类Dev

如何将Alamofire与自定义标头一起用于POST请求

来自分类Dev

在分派中发送自定义POST https请求(+ cookie,+标头)

来自分类Dev

Spring RestTemplate到带有自定义标头和请求对象的POST请求

来自分类Dev

Http POST请求获取标头和正文

来自分类Dev

带有JSON正文的Ruby POST请求

来自分类Dev

afnetworking 3.0迁移:如何使用标头和HTTP正文进行POST

来自分类Dev

重定向到包含POST数据和自定义标头的页面

来自分类Dev

HttpClient POST请求中的自定义标头不起作用

来自分类Dev

带有请求标头和正文的Alamofire POST请求

来自分类Dev

在分派中发送自定义POST https请求(+ Cookie,+标头)

来自分类Dev

如何使用cURL发送带有正文,标头和HTTP参数的POST?

来自分类Dev

带有CORS和自定义标头的AngularJS

来自分类Dev

libcurl:带有自定义数据的POST请求

来自分类Dev

带有自定义标头的UICollectionView

来自分类Dev

“ WSGIRequest”对象不具有带有自定义注册表单的属性“ post”

来自分类Dev

带有连字符的RCurl自定义标头

来自分类Dev

使用Jquery AJAX的POST标头和正文

来自分类Dev

如何使用post方法(JSON)传递自定义标头并从服务器获取数据

来自分类Dev

在PowerShell中创建自定义POST请求正文

来自分类Dev

带有自定义标头和正文的Ruby POST?

来自分类Dev

重定向到包含POST数据和自定义标头的页面

来自分类Dev

在vbscript中带有请求标头和有效负载的POST CURL

来自分类Dev

使用AT命令执行POST时如何自定义HTML标头?

来自分类Dev

使用Flash发送带有自定义标头的POST请求

来自分类Dev

带有自定义请求标头的 Angular 4

来自分类Dev

Web API - 包括标头和正文的 HTTP Post 请求

来自分类Dev

Python:带有自定义标头的请求失败

来自分类Dev

将带有标头和正文请求的 HTTP POST 转换为 Python(Telerik Fiddle)

Related 相关文章

  1. 1

    带有CORS和自定义标头的AngularJS

  2. 2

    如何将Alamofire与自定义标头一起用于POST请求

  3. 3

    在分派中发送自定义POST https请求(+ cookie,+标头)

  4. 4

    Spring RestTemplate到带有自定义标头和请求对象的POST请求

  5. 5

    Http POST请求获取标头和正文

  6. 6

    带有JSON正文的Ruby POST请求

  7. 7

    afnetworking 3.0迁移:如何使用标头和HTTP正文进行POST

  8. 8

    重定向到包含POST数据和自定义标头的页面

  9. 9

    HttpClient POST请求中的自定义标头不起作用

  10. 10

    带有请求标头和正文的Alamofire POST请求

  11. 11

    在分派中发送自定义POST https请求(+ Cookie,+标头)

  12. 12

    如何使用cURL发送带有正文,标头和HTTP参数的POST?

  13. 13

    带有CORS和自定义标头的AngularJS

  14. 14

    libcurl:带有自定义数据的POST请求

  15. 15

    带有自定义标头的UICollectionView

  16. 16

    “ WSGIRequest”对象不具有带有自定义注册表单的属性“ post”

  17. 17

    带有连字符的RCurl自定义标头

  18. 18

    使用Jquery AJAX的POST标头和正文

  19. 19

    如何使用post方法(JSON)传递自定义标头并从服务器获取数据

  20. 20

    在PowerShell中创建自定义POST请求正文

  21. 21

    带有自定义标头和正文的Ruby POST?

  22. 22

    重定向到包含POST数据和自定义标头的页面

  23. 23

    在vbscript中带有请求标头和有效负载的POST CURL

  24. 24

    使用AT命令执行POST时如何自定义HTML标头?

  25. 25

    使用Flash发送带有自定义标头的POST请求

  26. 26

    带有自定义请求标头的 Angular 4

  27. 27

    Web API - 包括标头和正文的 HTTP Post 请求

  28. 28

    Python:带有自定义标头的请求失败

  29. 29

    将带有标头和正文请求的 HTTP POST 转换为 Python(Telerik Fiddle)

热门标签

归档