在请求具有机械化的页面时,我遇到了此错误:
机械化::ResponseReadError 内容长度(17317)与响应体长度(17070)不匹配(机械化::ResponseReadError)
任何关于这种情况发生的原因以及我如何修复它的想法都是非常感谢的!
发布于 2014-05-28 13:27:56
发生网站返回一个错误的内容长度-值。捕获错误并强制页面解析。
agent = Mechanize.new
begin
page = agent.get 'http://bad.com'
rescue Mechanize::ResponseReadError => e
page = e.force_parse
end您还可以将agent.ignore_bad_chunking设置为true --但要注意可能的无声内容丢失。
发布于 2014-05-28 13:37:03
发生这种情况是因为Content-Length标头不等于response-body长度的大小。
检查下面的规格由机械化宝石采取。也会产生同样的错误。
def test_response_read_content_length_mismatch
def @res.content_length() 5 end
def @res.read_body() yield 'part' end
e = assert_raises Mechanize::ResponseReadError do
@agent.response_read @res, @req, @uri
end
assert_equal 'Content-Length (5) does not match response body length (4)' \
' (Mechanize::ResponseReadError)', e.message
endhttps://stackoverflow.com/questions/23912159
复制相似问题