首页 > 网站 > 建站经验 > 正文

C#使用、代理IP使用方法

2019-11-02 15:18:02
字体:
来源:转载
供稿:网友

   简要介绍一:WebProxy :即HTTP 代理设置。

  官方解释:WebProxy 类包含 WebRequest 实例用以确定是否使用 Web 代理发送请求的代理设置。 可以在计算机和应用程序配置文件中指定全局 Web 代理设置,并且应用程序可用 WebProxy 类的实例自定义 Web 代理的用途。

  个人理解:即将代理IP、Port进行封装,并设置代理IP的用户名及密码,通过该用户名和密码登陆登陆代理主机并进行相关访问。

C#使用代理IP使用方法 电脑高手网

  简要介绍二:HttpWebClientProtocol:所有使用 HTTP 传输协议的 xm l Web services 客户端代理的基类。

  在调用易行接口时,会动态编译源码,将编译后创建的实例强制转换成HttpWebClientProtocol类型,并在HttpWebClientProtocol中附上proxy类型,即可使用代理IP进行访问。

  简要介绍三:在HttpWebRequest、WebClien、HttpWebClientProtocol都可以使用代理IP。

  一: HttpWebRequest:已Http形式抓取网页,仅需在发起http前给request加上proxy属性即可,如下面使用代理IP抓取百度首页:

  HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");

  httpRequest.Method = "GET";

  httpRequest.Credentials = CredentialCache.DefaultCredentials;

  // 设置代理属性WebProxy -------------------------------------------------

  WebProxy proxy = new WebProxy();

  proxy.Address = new Uri("http://58.22.62.163:888/");

  proxy.Credentials = new NetworkCredential("juese", "1029");

  // 在发起HTTP请求前将proxy赋值给HttpWebRequest的Proxy 属性

  httpRequest.Proxy = proxy;

  //-------------------------------------------------

  HttpWebResponse res = (HttpWebResponse)httpRequest.GetResponse();

  StreamReader reader = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);

  string content = reader.ReadToEnd();

  reader.Close();

  二:WebClien:与上面类似,

  WebClient wc = new WebClient();

  WebProxy proxy = new WebProxy();

  proxy.Address = new Uri("http://58.22.62.163:888/");

  proxy.Credentials = new NetworkCredential("juese", "1029");

  wc.Proxy = proxy;

  Stream PageHtml = wc.OpenRead("http://www.baidu.com");

  StreamReader reader = new StreamReader(PageHtml, System.Text.Encoding.UTF8);

  string content = reader.ReadToEnd();

  return content;

  三:HttpWebClientProtocol:针对webService的代理IP使用(详情可参加TTS交互服务的WebServiceHelper.cs):

  // 获取WSDL

  WebClient wc = new WebClient();

  stream = wc.OpenRead(url);

  ServiceDesc ription sd = ServiceDesc ription.Read(stream);

  ServiceDesc riptionImporter sdi = new ServiceDesc riptionImporter();

  sdi.AddServiceDesc ription(sd, string.Empty, string.Empty);

  CodeNamespace cn = new CodeNamespace(@namespace);

  // 生成客户端代理类代码

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表