Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要
Posted
技术标签:
【中文标题】Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要【英文标题】:Ruby Restclient different double point or astrophobe and is order important 【发布时间】:2020-11-27 15:16:00 【问题描述】:我是 ruby RestClient 的新手。我已经搜索了这个 restclient 和 docruby 的许多示例。对我来说,使用 ruby restclient 非常重要,可以非常快速地获取数据。 但有些不是答案,这就是我想向大家提问的原因。
我正在研究这个 ruby restclient 示例代码:
restClient = RestClient::Request.new(
:method => :get,
:url => url,
:verify_ssl => true, #required using https
:content_type => :json,
:accept => :json,
:headers =>
:Authorization => "Bearer #token",
)
result = restClient.execute()
我的第一个问题是使用双点和天文望远镜有什么不同?
restClient = RestClient::Request.new(
:method => :get,
:method => 'get',
...
)
第二个问题是,代码中的序列/顺序是否重要,例如第一个 url 然后方法或方法然后 url 等等?
restClient = RestClient::Request.new(
:url => :url,
:method => :get,
...
)
#or
restClient = RestClient::Request.new(
:method => :get,
:url => :url,
...
)
第三个问题是,关于接受放入标题。有的在 header 中放了 accept 和 content-type,有的没有,有什么不同?
restClient = RestClient::Request.new(
:content_type => 'application/json',
:accept => 'application/json',
#or
:headers =>
'hello-token' => "Bearer #token",
'content_type'=> 'application/json',
'ACCEPT' => 'application/json'
)
【问题讨论】:
如果您有三个问题,请提出三个问题,让每个问题都能得到应有的答案。但是,请注意问题 #1 和 #2 与RestClient
无关,它们只是基本的 Ruby 语法问题,在每个基本 Ruby 教程中都有介绍,并且已经在 Stack Overflow 上被多次询问和回答。此外,如果您能准确地解释 什么 您对文档不清楚,这将有所帮助,这样回答者就不会浪费时间告诉您您已经知道的东西,或者您已经阅读和没有阅读的东西'不懂。
【参考方案1】:
使用双点和天文望远镜有什么不同?
:get
是一个符号,'get'
是一个字符串。
gem 是否能够同时处理这两者取决于 gem 的实现。因为 RestClient 文档在其示例中使用了 Symbol,所以我建议您也这样做。
但实际上——至少在其当前版本中——它并没有什么不同,因为 gem 在内部将参数转换为字符串(参见 initialize
和 normalize_method
)
代码中的序列/顺序很重要
理论上,哈希是一种无序的数据结构。因此,在这种情况下,顺序不应该很重要。但请记住,Ruby 的哈希实现实际上是在迭代哈希时保留插入键的顺序。
接受标头
我在 gem 的文档中没有找到他们使用第一个版本的任何示例。你真的尝试过这两个版本吗?当两者都起作用时,我会感到惊讶。因此我建议使用header:
版本。
【讨论】:
以上是关于Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要的主要内容,如果未能解决你的问题,请参考以下文章
Git diff 提交范围中的双点“..”和三点“...”有啥区别? [复制]