2013-05-09 20 views
0

好吧,所以我得到了一些幫助yesterday檢查和實際主機,看看它是否可用。然後我寫了這個。網:: http檢查實際頁面

我通過它爲我的服務器www.myhost.com和端口81.完美的作品。但是如果我想實際檢查一個頁面怎麼辦? www.myhost.com/anypage.php?不知道,但我認爲問題在於備用端口。

def server_up(server, port) 
    http = Net::HTTP.start(server, port, {open_timeout: 5, read_timeout: 5}) 
    response = http.head("/") 
    response.code == "200" 
rescue Timeout::Error, SocketError 
    false 
end 
+0

您能澄清一下您在找什麼嗎?你是說你只是想檢查服務器是否用'200'迴應'www.myhost.com/anypage.php'?確切地說, – adamdunson 2013-05-09 18:19:42

+0

!我發佈的代碼會告訴我這些網站是否已啓動,但我想爲它添加一個頁面。我想檢查網站中的實際頁面?如果在服務器變量中,我把www.myhost.com/mypage.php返回false。其他方面,只要www.myhost.com能夠正常工作。 – SeeleyBoothe 2013-05-09 18:30:06

+0

@SeeleyBoothe我剛剛從昨天回答了您的問題。 – Stefan 2013-05-09 18:31:02

回答

1

正如在評論中提到tadman,你可以修改你的方法接受一個可選路徑參數(如下圖)。不過,您可能需要重命名方法,因爲它不再只是檢查服務器是否啓動,而是如果該頁面存在。

def server_up(server, port, path="") 
    http = Net::HTTP.start(server, port, {open_timeout: 5, read_timeout: 5}) 
    response = http.head("/#{path}") 
    response.code == "200" 
rescue Timeout::Error, SocketError 
    false 
end 
+0

,因爲你是對的。問題是我正在處理的服務器將返回「腳本未找到」和它應該是的路徑。所以我死了的地方就是它不會僅僅返回false,因爲服務器確實在運行,但是頁面並沒有在那裏? – SeeleyBoothe 2013-05-09 18:51:45

相關問題