One alternative is to have a client program in the language of your choice that reads the data and the deals with the SSRS thing.
But if there is a lot of data to collect and you want to do that in a stored procedure to be close to the data for better efficiency, CLR is indeed the way to call a web service. In the system I work with, we use CLR for this purpose, and hardly nothing else.
Beware that there is some security red tape with the CLR as well. With CLR strict security in force (the default), all assemblies are considered unsafe. But this is not a big deal once you have it working.
It is also possible to call web services through COM and sp_OAxxxx, but please don't do that.