IT小书童

通过c# WebProxy在web使用代理服务器

 使用场景

 1,需要权限才能访问的网站,假设你当前网络无法访问www.itxst.com,但是有一台代理服务器代理了这个网站,那么你想在C#程序中访问该网站。

 2,程序内部路由作用,网站后端有多台服务器组成,如(192.168.1.5 、192.168.1.6、192.168.1.5 ),那么通过WebProxy可以将请求分配到不同的IP上。

代码实现

  //当前网络无法访问该网站
  var url="http://www.itxst.com";
   //创建要请求的对象
  var req= (HttpWebRequest)WebRequest.Create(url);
   //创建WebProxy对象
  var webPro = new WebProxy();
   //代理服务器地址
  webPro.Address = new Uri("104.193.88.77:80");
  //如果代理服务器需要用户名和密码
  webPro.Credentials = new NetworkCredential("username", "password");
  req.Proxy = webPro;
   //超时时间 8秒后无响应就放弃
   req.Timeout = 8000;
   HttpWebResponse response = (HttpWebResponse)req.GetResponse();
   StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
   //读取返回的内容
   var html= sr.ReadToEnd();

关于第二种情况,其实可以通过DNS或者NGINX或IIS实现,并没有多大的意义。