How to judge web exists or not with open-uri?

would you mind to tell me how to fix it, to make the following program
to run?
require 'rubygems'
require 'open-uri'
url="www.123.com"
open(url){|file| if url don't exists then puts "url don't exists"
else puts "url exists"}
thiks

···

--
Posted via http://www.ruby-forum.com/.

You better use Net::HTTP for this
http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html

url = URI.parse('www.123.com')
status = Net::HTTP.start(url.host, url.port) {|http|
  http.head(url.path)
}

puts( /^2/ =~ status.code ? "ok" : "nok" )

Kind regards

robert

···

2010/7/20 Pen Ttt <myocean135@yahoo.cn>:

would you mind to tell me how to fix it, to make the following program
to run?
require 'rubygems'
require 'open-uri'
url="www.123.com"
open(url){|file| if url don't exists then puts "url don't exists"
else puts "url exists"}

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

irb(main):017:0> def getURL(u)
irb(main):018:1> begin
irb(main):019:2* x = open(u)
irb(main):020:2> rescue
irb(main):021:2> puts "url does not exist"
irb(main):022:2> end
irb(main):023:1> end
=> nil
irb(main):025:0> getURL("http://www.awqes.com")
url does not exist
=> nil
irb(main):026:0> getURL("http://www.google.com")
=> #<StringIO:0x15bd550>
irb(main):027:0>

Not the string "url does not exist" is for visual confirmation.

Though the x is returned as nil on a non-existent URL.

`

···

From: Pen Ttt <myocean135@yahoo.cn>
Reply-To: <ruby-talk@ruby-lang.org>
Newsgroups: comp.lang.ruby
Date: Tue, 20 Jul 2010 14:00:57 +0900
To: ruby-talk ML <ruby-talk@ruby-lang.org>
Subject: how to judge web exists or not with open-uri?

would you mind to tell me how to fix it, to make the following program
to run?
require 'rubygems'
require 'open-uri'
url="www.123.com"
open(url){|file| if url don't exists then puts "url don't exists"
else puts "url exists"}
thiks
--
Posted via http://www.ruby-forum.com/\.

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'open-uri'
=> true
irb(main):003:0> url = URI.parse('www.123.com')
=> #<URI::Generic:0xb764ff84 URL:www.123.com>
irb(main):004:0> status = Net::HTTP.start(url.host, url.port) {|http|
irb(main):005:1* http.head(url.path)
irb(main):006:1> }
NameError: uninitialized constant Net
  from (irb):4
  from :0
irb(main):007:0> puts( /^2/ =~ status.code ? "ok" : "nok" )
NoMethodError: undefined method `code' for nil:NilClass
  from (irb):7
  from :0
??

···

--
Posted via http://www.ruby-forum.com/.

NameError: uninitialized constant Net

require 'net/http'

···

--
JJ Fleck
PCSI1 Lycée Kléber