C#HttpWebRequest请求通过代理

我试图让我的程序通过代理工作,但它不想(System.Net.WebException:操作已经超时)。 没有代理一切都很好

这是一个代码:

string proxy = "154.46.33.157"; int port = 8080; ASCIIEncoding encoding = new ASCIIEncoding(); string postData = "email=" + email + "&pass=" + pass; byte[] data = encoding.GetBytes(postData); WebProxy myproxy = new WebProxy(proxy, port); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("SITE"); WebHeaderCollection myWebHeaderCollection = request.Headers; request.CookieContainer = sCookie; request.Method = "POST"; request.Proxy = myproxy; request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.ContentLength = data.Length; request.Host = "HOST"; request.UserAgent = "[UA]"; request.Referer = "reffer"; request.KeepAlive = false; request.Timeout = 20000; Stream stream = request.GetRequestStream(); // TIMEOUT HERE stream.Write(data, 0, data.Length); stream.Close(); request.GetResponse() .Close(); 

同时这段代码效果很好

  string proxy = "154.46.33.157"; int port = 8080; WebProxy myproxy = new WebProxy(proxy, port); WebRequest req = WebRequest.Create("SITE"); req.Timeout = 5000; req.GetResponse(); 

代理还活着,我通过IE测试了它。 我该怎么做才能解决这个问题?

几点建议:

  1. 你使用IP地址代理?
  2. 你需要登录该代理吗? proxy.Credentials = new NetworkCredential(User,Password);
  3. 尝试更少的标题,从少开始,如果它的工作继续逐一添加

UPD:对于主机 – 它是一个有效的URL吗? 你有没有放一个有效的端口号? 比如www.contoso.com:8080

尝试将以下内容添加到web.configapp.config具体取决于应用程序类型:

           

您可以在此处找到更多详细信息和其他参数,例如用户凭据等: http : //msdn.microsoft.com/en-us/library/kd3cf2ex(v = vs.110).aspx