Protocols.HTTP.get_url_data and Protocols.HTTP.get_url_nice are in my opinion flawed. According to the docs "0 is returned upon failure". That failure will have to be pretty severe though. It will return data as long as the server responds properly. Error codes are ignored.
They would gain usefullness if at least the 4xx and 5xx series of errors are considered "failures". Unless the 1xx and 3xx-series are handle somewhere they should also return 0.
I'll fix the code if noone protests.