首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机械化::ResponseReadError-内容长度与响应体长度不匹配

机械化::ResponseReadError-内容长度与响应体长度不匹配
EN

Stack Overflow用户
提问于 2014-05-28 12:52:18
回答 2查看 1.3K关注 0票数 2

在请求具有机械化的页面时,我遇到了此错误:

机械化::ResponseReadError 内容长度(17317)与响应体长度(17070)不匹配(机械化::ResponseReadError)

任何关于这种情况发生的原因以及我如何修复它的想法都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-28 13:27:56

发生网站返回一个错误的内容长度-值。捕获错误并强制页面解析。

代码语言:javascript
复制
agent = Mechanize.new
begin
  page = agent.get 'http://bad.com'
rescue Mechanize::ResponseReadError => e
  page = e.force_parse
end

您还可以将agent.ignore_bad_chunking设置为true --但要注意可能的无声内容丢失。

票数 1
EN

Stack Overflow用户

发布于 2014-05-28 13:37:03

发生这种情况是因为Content-Length标头不等于response-body长度的大小。

检查下面的规格由机械化宝石采取。也会产生同样的错误。

代码语言:javascript
复制
  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
  end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23912159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档