OpenURI is an easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP(OpenURI支持重定向)

  • 像打开普通文件那样打开http/ftp的URL

    open("http://www.ruby-lang.org/") {|f|
    f.each_line {|line| p line}
    }
  • 打开的文件对象已经被OpenURI::Meta所扩展, 您可以方便地获取meta信息
    open("http://www.ruby-lang.org/en") {|f|
    f.each_line {|line| p line}
    p f.base_uri # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
    p f.content_type # "text/html"
    p f.charset # "iso-8859-1"
    p f.content_encoding # []
    p f.last_modified # Thu Dec 05 02:45:02 UTC 2002
    }
  • 使用哈希表参数,您就可以指定添加的头字段
    open("http://www.ruby-lang.org/en/",
    "User-Agent" => "Ruby/#{RUBY_VERSION}",
    "From" => "foo@bar.invalid",
    "Referer" => "http://www.ruby-lang.org/") {|f|
    ...
    }
  • 在默认情况下,http_proxy以及ftp_proxy这些环境变量都是有效的. 若想禁用代理,可以这样 :proxy => nil
    open("http://www.ruby-lang.org/en/raa.html",
    :proxy => nil) {|f|
    ...
    }
  • URI对象的打开方式也是类似的
    uri = URI.parse("http://www.ruby-lang.org/en/")
    uri.open {|f|
    ...
    }
  • 可以直接读取URI对象。返回的字符串已经被OpenURI::Meta所扩展
    str = uri.read
    p str.base_uri
  • 访问https请求,open-uri + OpenSSL

    open(url, :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE) { |f| ... }

最新文章

  1. AngularJS----基本操作
  2. C#FTP操作类含下载上传删除获取目录文件及子目录列表等等
  3. 执行最慢的SQL语句
  4. 杭电ACM1000
  5. angularJs实现信息数据提交功能
  6. Java实现文件的读写,复制
  7. jquery表单重置另一种方法
  8. iOS程序性能优化
  9. 聊聊JAVA中 String类为什么不可变
  10. matlab无法打开.m文件查看
  11. selenium自动加载各个浏览器插件
  12. Spring Security 中的加密BCryptPasswordEncoder
  13. [置顶] 获取网络数据中的数组显示成ListView的简单流程
  14. SSL 证书服务推荐
  15. Delphi 获取Ip地址的方法总结
  16. MVC使用Gantt Chart实现甘特图,管理事情进度
  17. Linux命令大观
  18. ubuntu 16.04下更换源和pip源【转】
  19. EnumSet基本用法
  20. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何让不同的PLC程序分线程运行 TC3

热门文章

  1. Sharepoint学习笔记—修改SharePoint的Timeouts (Execution Timeout)
  2. laravel + haproxy + https 后生成分页 url 非 https 解决办法
  3. HCNA调整RIP的运行版本
  4. java 解压缩Zip文件 ziputil
  5. QQ空间那年今日 &amp; 人人过往的今天
  6. 使用while循环+try-except定位元素
  7. OC 类 的声明
  8. IOS NSLayoutConstraint 页面布局(通过代码添加约束)
  9. POJ 1011 Sticks 【DFS 剪枝】
  10. python常见异常及解决方法