Я видел эту часть кода:
var request = (HttpWebRequest) WebRequest.Create("http://www.google.com");
Зачем вам нужно использовать (HttpWebRequest)? Почему бы просто не использовать HttpWebRequest.Create? И почему HttpWebRequest.Create делает WebRequest, а не HttpWebRequest?