Grails / Groovy URL .getText接收状态

时间:2013-11-18 13:25:53

标签: http grails groovy http-status-codes

我将一些wordpress内容包含在带有customTag的grails应用程序中 一切正常。如果网址的状态代码不是200,我想要呈现一些标准文本

我到目前为止

def wordpressHp = { body ->
//  def url = grailsApplication.config.wordpress.server.url+'?include=true'
    def url = "http://www.dasdasdasgsdniga.nd"
    def content 
    try{
        content = url.toURL().getText(connectTimeout: 10000)
    }catch(e){
        content="SORRY WORDPRESS IS CURRENTLY NOT AVAILABLE"
    }
    out << content
}

正确的网址被注释掉了,我现在希望尝试失败 但它不是渲染它渲染我的提供者的一些DNS错误页面。 所以我认为我必须寻找http状态代码,但我该怎么做?

任何提示,提前谢谢

1 个答案:

答案 0 :(得分:10)

你可以尝试:

def url = "http://www.dasdasdasgsdniga.nd"
def content 
try {
    content = url.toURL().openConnection().with { conn ->
        readTimeout = 10000
        if( responseCode != 200 ) {
            throw new Exception( 'Not Ok' )
        }
        conn.content.withReader { r ->
            r.text
        }
    }
}
catch( e ) {
    content="SORRY WORDPRESS IS CURRENTLY NOT AVAILABLE"
}