首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

已知一个重定向的网址,ruby怎么得到最终网址

2012-07-22 
已知一个重定向的网址,ruby如何得到最终网址?def html_get_web_url(url)uri URI.parse(url)response N

已知一个重定向的网址,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 查看服务器返回的数据格式, 怎么输出, 由自己来决定。

热点排行