Loading...

October 7, 2009

Groovy Goodness: Reading URL Content

Groovy adds some methods to the URL class which make reading data from an URL easy. For example the text property returns the complete contents of the document that is identified by the URL. Or we can use the eachLine() method to loop through each line of the document. Groovy also adds a toURL() to the String class to make a URL object.

// Contents of http://www.mrhaki.com/url.html:
// Simple test document
// for testing URL extensions
// in Groovy.

def url = "http://www.mrhaki.com/url.html".toURL()

assert '''\
Simple test document
for testing URL extensions
in Groovy.
''' == url.text

def result = []
url.eachLine {
    if (it =~ /Groovy/) {
        result << it
    }
}
assert ['in Groovy.'] == result

url.withReader { reader ->
    assert 'Simple test document' == reader.readLine()
}