I don't even believe that you get that far as this line will throw an exception every time because the URI isn't valid.

Code:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");
You can't pass an empty string into WebRequest.Create(). How do you expect to make a request with an invalid URI? You set a proxy IP, but you never actually tell the request what it is looking for.