Ruby on rails RestClient::Request.execute和RestClient.post之间有什么区别?

Ruby on rails RestClient::Request.execute和RestClient.post之间有什么区别?,ruby-on-rails,ruby,rest-client,Ruby On Rails,Ruby,Rest Client,我用RestClient::request.execute发出了一个post请求,该请求有效,但有时以一个422(不可处理的实体)结束 后来,我尝试了RestClient.post,它没有给我422,而且一直都很有效 这两个电话有什么区别 我知道使用RestClient::Request比使用RestClient.post使用参数的可能性更大。我不明白为什么我用一种方法得到一个422 这里我使用了json: response = RestClient::Request.execute(

我用
RestClient::request.execute
发出了一个post请求,该请求有效,但有时以一个
422
(不可处理的实体)结束

后来,我尝试了
RestClient.post
,它没有给我
422
,而且一直都很有效

这两个电话有什么区别

我知道使用
RestClient::Request
比使用
RestClient.post
使用参数的可能性更大。我不明白为什么我用一种方法得到一个
422

这里我使用了json:

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
        }
    )
vs


它们是相同的-
RestClient.post
execute
的语法糖,请参阅RestClient的源代码:


422是由其他原因引起的

你能为每种原因举个例子吗?
response = RestClient.post('http://localhost:3000',
          :param1 => 'abc',
          :param2 => "def")
def self.post(url, payload, headers={}, &block)
    Request.execute(:method => :post,
       :url => url,
       :payload => payload,
       :headers => headers, &block)
end