我发布了RestClient::Request.execute
的帖子请求,但是有时会以422
(不可处理的实体)结束。
之后我尝试了RestClient.post
而422
没有给我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}}
答案 0 :(得分:0)
它们是相同的 - RestClient.post
是execute
的语法糖,请参阅restclient的来源,restclient.rb:
def self.post(url, payload, headers={}, &block)
Request.execute(:method => :post,
:url => url,
:payload => payload,
:headers => headers, &block)
end
422是由其他原因引起的