自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby模塊OpenURI獲取HTTP/FTP地址內(nèi)容

開發(fā) 后端
Ruby模塊OpenURI是Ruby標(biāo)準(zhǔn)庫中的附加庫所帶的一個(gè)。其安放路徑為lib/oepn-uri.rb。希望這篇介紹的知識(shí)可以幫助我們理解這一模塊。

Ruby中有一些特殊的模塊是比較有用的。比如在這里為大家介紹的Ruby模塊OpenURI ,就是一種比較常見的Ruby模塊。我們需要熟練的掌握其特性。#t#

Ruby中獲取一個(gè)HTTP/FTP地址的內(nèi)容,有一個(gè)非常方便的方法,就是使用open-uri庫。

Ruby模塊OpenURI是ruby的標(biāo)準(zhǔn)附加庫中所帶的,路徑是:lib/oepn-uri.rb

引用了該附加庫后,就可以像打開普通文件那樣打開一個(gè)http/ftp的uri的資源。

Ruby模塊OpenURI有區(qū)別的地方在這里:

  1. require 'open-uri'  
  2. open('c:/boot.ini'){|file|  
  3. puts file.class #File  
  4. }  
  5. open('http://coderlee.
    cnblogs.com'){|file|  
  6. puts file.class #Tempfile  

可以看出,打開一個(gè)本機(jī)文件的塊參數(shù)是File類型,而打開一個(gè)uri的塊參數(shù)是一個(gè)Tempfile類型。

還有一點(diǎn)要注意,就是open-uri里面的open方法會(huì)自動(dòng)對(duì)302 redirection重定向地址進(jìn)行追蹤訪問,而Net::HTTP#get方法則不會(huì)自動(dòng)追蹤302重定向地址。

該函數(shù)最后返回的值,是傳入的代碼塊最后的值。 可以這樣獲得Ruby模塊OpenURI的內(nèi)容

  1. data = open('http://coderlee.
    cnblogs.com'){|f| f.read}  
  2. data = open('http://coderlee.
    cnblogs.com'){|f| f}.open.read 

第二句的open的原因是:open方法返回的流,是已經(jīng)關(guān)閉了的tempfile,所以要先open打開流,返回打開的流,再調(diào)用read讀取。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-15 15:55:43

Ruby模塊

2009-12-15 17:04:56

Ruby使用HTTP協(xié)

2009-12-16 13:53:51

Ruby多繼承

2014-11-13 10:57:03

http協(xié)議

2021-10-04 19:49:23

HTTP模塊No.js

2010-07-01 16:01:05

HTTP協(xié)議

2011-04-13 16:49:26

HTTPASP.NET

2010-01-26 14:04:02

2009-10-27 14:25:08

2009-12-18 16:00:29

Ruby獲取當(dāng)前類名

2018-06-15 10:25:43

Python HTTPFTP服務(wù)器

2018-12-06 09:23:33

2010-02-23 14:41:28

Python模塊

2011-07-11 15:20:15

MAC地址java

2010-07-21 09:54:29

FreeBSD 8.1

2018-06-27 15:14:31

HTTP編碼內(nèi)容

2011-06-28 09:23:22

Firefox地址欄

2023-08-27 21:47:15

2010-02-25 17:51:04

WCF服務(wù)地址

2011-04-13 16:59:41

HTTPASP.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)