已知一个重定向的网址,ruby如何得到最终网址?
def html_get_web_url(url)
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
case (response)
when Net::HTTPSuccess then
return url
when Net::HTTPRedirection then
return html_get_web_url(response['Location'])
else
return nil
end
end
这个函数取有些还是不能得到目的网址
[解决办法]
是一级重定向,还是多级重定向。
如果是一级直接
def html_get_web_url(url)
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
case (response)
when Net::HTTPSuccess then
return url
when Net::HTTPRedirection then
return response['Location']
else
return nil
end
end
[解决办法]
首先, 返回什么内容, 什么格式, 这是由服务器来决定
如果服务器提供条件给你可选性地返回格式, 那么在请求时应该通过query_string声明(get请求), 等等
如果没有, 则没有了, 视服务器而定。
假如, 服务器返回一个字符串字节, 这个字符串是一个json数据。
如果你输出的是字符串, 就能看到整个json数据,
如果是json文件, 就会下载这个json文件。
用response.content_type 查看服务器返回的数据格式, 怎么输出, 由自己来决定。