【问题标题】:Ignore Content-Length of an http response忽略 http 响应的 Content-Length
【发布时间】:2015-10-29 09:55:48
【问题描述】:

我需要向外部服务发出 http 请求,这表明它的响应的 Content-Length 不匹配。我找不到有关如何忽略该 Content-Length 或它是否会影响响应正文长度的信息。

这是我用来发出请求的代码:

req = Net::HTTP::POST.new(url, headers)
req.body = body
http = Net::HTTP.new(url.host, url.port)
response = http.request(req)
body = JSON.parse(response.body)

【问题讨论】:

  • 我不确定我是否理解您的问题。你证明的代码有效吗?
  • 上面的代码工作正常,但是当我制作 JSON.parse 时,它​​有时会失败。当它失败并且我阅读响应正文时,我可以看到最后一个字符没有出现。外部服务在响应的 Content-Length 标头上不匹配,不知道是导致问题还是没有影响。
  • 啊,好的。首先,Content-Length 设置不正确的可能性很小,因为它实际上从未手动设置,因为它属于 HTTP 层本身,并且设置了经过彻底测试的相应库。即使不是,我认为“忽略”它不是一个好主意,最好联系服务提供商并指出错误。
  • 谢谢大家。我会做的。
  • 酷!然后我会把它作为答案发布

标签: ruby-on-rails ruby http http-headers


【解决方案1】:

首先,任何服务都没有正确设置 Content-Length 的可能性很小,因为它实际上从未手动设置,它属于底层 HTTP 层本身,并使用经过彻底测试的相应库进行设置。

即使不是,我认为“忽略”它不是一个好主意,最好联系服务提供商并指出错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2012-10-12
    相关资源
    最近更新 更多