Tag: httpwebrequest

区分浏览器请求和移动应用程序请求的最佳方法是什么?

我的应用程序中有一些操作要求用户登录网站,有些操作需要“人”(基本上是移动应用程序用户)才能进行身份validation。 为了知道我是否需要通过移动认证推送当前请求,我希望能够判断该请求是来自浏览器还是来自iphone。 是否有请求标题或我能看到的东西? 谢谢,最大

有关HTTP身份validation方案的建议(使用请求标头)

我在Heroku上托管了一个rails应用程序,它限制了使用代理服务的访问权限。 外部服务器充当所有请求的中介并处理用户身份validation。 用户通过身份validation后,服务器(我认为LDAP)会将用户名添加到请求标头中,并将其重定向到我的应用程序。 我想使用请求标头中的用户名来validation我的应用中的用户。 基本上,如果用户不存在,我会创建一个用户名(不需要密码),如果不是,我只会登录。我将把用户存储在我的应用程序的数据库中。 我该怎么做? 为此可以使用Devise吗? 编辑 :我使用Devise /自定义Warden策略,如下所示: # config/initializers/my_strategy.rb Warden::Strategies.add(:my_strategy) do def valid? true end def authenticate! if !request.headers[“my_key”] fail!(“You are not authorized to view this site.”) redirect!(“proxy_url”) else username = request.headers[“my_key”] user = User.find_by_username(username) if user.nil? user = User.create(:username => username) end success!(user) end end end #config/initializers/devise.rb config.warden do |manager| manager.default_strategies(:scope […]

如何阅读别人的论坛

我的朋友有一个论坛,里面有很多包含信息的post。 有时她想查看她论坛中的post,并得出结论。 目前,她通过点击她的论坛来评论post,并生成一个不一定准确的数据图片(在她的大脑中),她从中得出结论。 我今天的想法是,我可能会发出一个快速的Ruby脚本来解析必要的HTML,让她真正了解数据的含义。 我今天第一次使用Ruby的net / http库,我遇到了一个问题。 虽然我的浏览器没有查看我朋友的论坛,但似乎Net :: HTTP.new(“forumname.net”)方法产生以下错误: 无法建立连接,因为目标计算机主动拒绝它。 – 连接(2) 谷歌搜索这个错误,我已经知道它与MySQL(或类似的东西)有关,不希望像我这样的爱管闲事的人在那里远程探索:出于安全原因。 这对我来说很有意义,但它让我想知道:我的浏览器是如何在我朋友的论坛上找到的,但我的小Ruby脚本没有任何戳戳权利。 我的脚本是否有某种方式告诉服务器它不是威胁? 我只想要阅读权而不是写权利? 多谢你们, ž。

从URL下载图像?

我正在尝试使用HTTP :: get从我创建的URL下载Google图表的图像。 这是我的第一次尝试: failures_url = [title, type, data, size, colors, labels].join(“&”) require ‘net/http’ Net::HTTP.start(“http://chart.googleapis.com”) { |http| resp = http.get(“/chart?#{failures_url”) open(“pie.png” ,”wb”) { |file| file.write(resp.body) } } 其中只生成一个空的PNG文件。 对于我的第二次尝试,我在http.get()调用中使用了存储在failure_url内的值。 require ‘net/http’ Net::HTTP.start(“http://chart.googleapis.com”) { |http| resp = http.get(“/chart?chtt=Builds+in+the+last+12+months&cht=bvg&chd=t:296,1058,1217,1615,1200,611,2055,1663,1746,1950,2044,2781,1553&chs=800×375&chco=4466AA&chxl=0:|Jul-2010|Aug-2010|Sep-2010|Oct-2010|Nov-2010|Dec-2010|Jan-2011|Feb-2011|Mar-2011|Apr-2011|May-2011|Jun-2011|Jul-2011|2:|Months|3:|Builds&chxt=x,y,x,y&chg=0,6.6666666666666666666666666666667,5,5,0,0&chxp=3,50|2,50&chbh=23,5,30&chxr=1,0,3000&chds=0,3000”) open(“pie.png” ,”wb”) { |file| file.write(resp.body) } } 并且,出于某种原因,即使第一次尝试在http.get()调用中具有相同的数据,此版本仍然有效。 有人知道为什么吗? 解: 在试图弄清楚为什么会发生这种情况后,我发现“ 如何通过HTTP下载二进制文件? ”。 其中一条评论提到在Net::HTTP.start(…)调用中删除http://否则它将不会成功。 我这样做之后果然: failures_url = [title, […]