System.NullReferenceException are one of the easiest exceptions to identify.
In C#, and most managed languages like Java, each variable like GraphicsDevice contains a reference in memory to the data for the object. so when this statement executes "WebClient client = new WebClient()" a webclient object is initialized, and client simply points to the webclient in memory.
So, when you get this error, you are trying to get the data from a reference that is not created yet. make sense?
A little debugging tip, putting your mouse over any variable (or type for that matter) in visual studio tells you the value of it. This will pin point which variable is declared (WebClient client

but not initialized (client = new WebClient()
good luck on your app.