Could be one of many things. The last time I tried this, I needed to set the credentials to get past my corporate firewall:
request.Credentials = CredentialCache.DefaultCredentials;
There is a code sample on MSDN
] I found very helpful.
If you are working on a proxy server, you might consider async methods, but I'd get this working first!
Hope this helps.