405 Net :: HTTP请求不允许的方法[ruby on rails]

时间:2011-10-26 14:33:27

标签: ruby-on-rails http-headers

我正在尝试使用以下代码验证是否存在远程网址:

endpoint_uri = URI.parse(@endpoint.url)
endpoint_http = Net::HTTP.new(endpoint_uri.host, endpoint_uri.port)
endpoint_request = Net::HTTP::Head.new(endpoint_uri.request_uri)
endpoint_response = endpoint_http.request(endpoint_request)

我仍然不允许405方法。当我在Get中使用Head而不是Net::HTTP::Head.new时,我获得200次成功,但也会使用整个远程文档作为响应,这会导致更长的响应时间(0.3s => 0.9s)。

为什么会发生这种情况? THX

1 个答案:

答案 0 :(得分:3)

您尝试与之交互的@endpoint网址可​​能不支持HEAD请求(这可能非常奇怪,但情况可能仍然如此)。使用少量网址(google.com,stackoverflow.com等),您的代码可以正常使用。

您是否尝试过卷曲请求以查看它返回的内容?

curl -I http://www.the_website_you_want_to_test.com