首页 新闻 会员 周边 捐助

Rails wrong status line: "TTP/1.1 302 Found"

0
悬赏园豆:50 [待解决问题]

最近在搞 Rails,碰到一个很蛋疼的问题。

我想模拟发送http请求。

require 'net/http'
class TeamController < ApplicationController
   def test

     _uri='http://v.youku.com/player/getPlayList/VideoIDS/XNjQyNjg3ODg0_ev_5'
     render text: Net::HTTP.get(URI(_uri))
   end
end

但是运行后我就得到了这个错误:

wrong status line: "TTP/1.1 302 Found"

但是如果我新建一个 ruby 文件,相同的代码,在本地运行后就能得到返回值。说明这个错误和Rails有关。

然后我又把这个 url 换成其他的,结果有些url是能够正确得到返回值的。所以我猜测在Rails中发送某些请求是不成功的。

然后我在 Aspx 中发送了一个 web 请求到相同的地址,结果仍然可以得到。

事实上我们把这个 url 直接用浏览器打开:http://v.youku.com/player/getPlayList/VideoIDS/XNjQyNjg3ODg0_ev_5 也是能看到返回值的。

 

所以我就不解了,为什么 唯独在Rails中发送请求错误呢?

戒灵的主页 戒灵 | 初学一级 | 园豆:152
提问于:2013-12-03 12:52
< >
分享
所有回答(1)
0

拿 Fiddler 抓下包,看看两个包的异同。

Launcher | 园豆:45050 (高人七级) | 2013-12-03 13:01

谢谢,用 Fiddler 试过了还是不行。但是我发现另外一个问题就是,同样的包含这段代码的一个 ruby 文件在windows环境下就能返回值,但是我把这个文件放到我的 Ubuntu虚拟机上去执行,发现报同样的错了,最终我断定这个是我的ubuntu虚拟机的原因了,不过为什么会出现这个错误呢,请问你知道吗

支持(0) 反对(0) 戒灵 | 园豆:152 (初学一级) | 2013-12-03 13:25

我找到原因了,原来是因为公司的电脑禁止访问视频网站,而之前因为开发网站我的本机IP被允许访问,但是虚拟机是用桥连的,仍然没被允许访问,所以遇到这个坑爹的错误,sheet,害我找了一上午。

支持(0) 反对(0) 戒灵 | 园豆:152 (初学一级) | 2013-12-03 13:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册