【发布时间】: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