RestClient :: Request.execute和RestClient.post有什么区别?

时间:2016-02-12 14:35:25

标签: ruby-on-rails ruby rest-client

我发布了RestClient::Request.execute的帖子请求,但是有时会以422(不可处理的实体)结束。

之后我尝试了RestClient.post422没有给我RestClient::Request并且一直都像魅力一样。

两个电话之间有什么区别?

我知道RestClient.post使用参数比使用422更有可能。我不明白为什么我用一种方法获得response = RestClient::Request.execute( :method => :post, :url => 'http://localhost:3000', :timeout => 30, :open_timeout => 2, :payload => payload.to_json, :headers => { :content_type => :json, :accept => :json } ) 而不用另一种方法获得。

我在这里使用了json:

response = RestClient.post('http://localhost:3000',
          :param1 => 'abc',
          :param2 => "def")

VS

{{1}}

1 个答案:

答案 0 :(得分:0)

它们是相同的 - RestClient.postexecute的语法糖,请参阅restclient的来源,restclient.rb

def self.post(url, payload, headers={}, &block)
    Request.execute(:method => :post,
       :url => url,
       :payload => payload,
       :headers => headers, &block)
end

422是由其他原因引起的