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