gpt4 book ai didi

ruby - 在使用 Ruby 获取正文之前如何检查 Content-type header ?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:14:19 25 4
gpt4 key购买 nike

我需要一种能够获取网页的方法/库,如下例所示:

result = http_client.get('/some_page.html') do |response|
if response.content_type == 'text/html' and response.code == 200
response.read_body #the headers are returned along with page body
else
#not reading the body so only the headers are returned without body
end
end

现在如果是“text/html”页面,响应成功:

p result.code #>200
p result.content_type #>text/html
p result.body #><DOCTYPE html...

如果是非“text/html”页面或非 200 页面:

p result.code #>404
p result.content_type #>text/html
p result.body #>nil

这一切都必须在对网络服务器的一次请求中完成。发出 HTTP HEAD 请求以检查 header 然后发出 HTTP GET 请求以获取正文是 Not Acceptable ,因为这会导致 2 个请求。

什么 gem/库提供了这样的可能性?

更新

我在 net/http 库中找到了一个解决方案:

client.request_get(uri.request_uri) do |res|
if res.content_type == 'text/html'
res.read_body
else
res.instance_eval {@body_exist = false}
end
end

最佳答案

我在 net/http 库中找到了一个解决方案:

client.request_get(uri.request_uri) do |res|
if res.content_type == 'text/html'
res.read_body
else
res.instance_eval {@body_exist = false}
end
end

关于ruby - 在使用 Ruby 获取正文之前如何检查 Content-type header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6460402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com