html5中文学习网

您的位置: 首页?>?网站及特效实例?>?jquery特效 ? 正文

C#使用代理IP使用方法_编程语言综合

[ ] 已经帮助:人解决问题

?  简要介绍一:WebProxy :即HTTP 代理设置。pzbHTML5中文学习网 - HTML5先行者学习网

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

  个人理解:即将代理IP、Port进行封装,并设置代理IP的用户名及密码,通过该用户名和密码登陆登陆代理主机并进行相关访问。pzbHTML5中文学习网 - HTML5先行者学习网

C#使用代理IP使用方法 三联

  简要介绍二:HttpWebClientProtocol:所有使用 HTTP 传输协议的 xm l Web services 客户端代理的基类。pzbHTML5中文学习网 - HTML5先行者学习网

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

  简要介绍三:在HttpWebRequest、WebClien、HttpWebClientProtocol都可以使用代理IP。pzbHTML5中文学习网 - HTML5先行者学习网

  一: HttpWebRequest:已Http形式抓取网页,仅需在发起http前给request加上proxy属性即可,如下面使用代理IP抓取百度首页:pzbHTML5中文学习网 - HTML5先行者学习网

  HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");pzbHTML5中文学习网 - HTML5先行者学习网

  httpRequest.Method = "GET";pzbHTML5中文学习网 - HTML5先行者学习网

  httpRequest.Credentials = CredentialCache.DefaultCredentials;pzbHTML5中文学习网 - HTML5先行者学习网

  // 设置代理属性WebProxy -------------------------------------------------pzbHTML5中文学习网 - HTML5先行者学习网

  WebProxy proxy = new WebProxy();pzbHTML5中文学习网 - HTML5先行者学习网

  proxy.Address = new Uri("http://58.22.62.163:888/");pzbHTML5中文学习网 - HTML5先行者学习网

  proxy.Credentials = new NetworkCredential("juese", "1029");pzbHTML5中文学习网 - HTML5先行者学习网

  // 在发起HTTP请求前将proxy赋值给HttpWebRequest的Proxy 属性pzbHTML5中文学习网 - HTML5先行者学习网

  httpRequest.Proxy = proxy;pzbHTML5中文学习网 - HTML5先行者学习网

  //-------------------------------------------------pzbHTML5中文学习网 - HTML5先行者学习网

  HttpWebResponse res = (HttpWebResponse)httpRequest.GetResponse();pzbHTML5中文学习网 - HTML5先行者学习网

  StreamReader reader = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);pzbHTML5中文学习网 - HTML5先行者学习网

  string content = reader.ReadToEnd();pzbHTML5中文学习网 - HTML5先行者学习网

  reader.Close();pzbHTML5中文学习网 - HTML5先行者学习网

  二:WebClien:与上面类似,pzbHTML5中文学习网 - HTML5先行者学习网

  WebClient wc = new WebClient();pzbHTML5中文学习网 - HTML5先行者学习网

  WebProxy proxy = new WebProxy();pzbHTML5中文学习网 - HTML5先行者学习网

  proxy.Address = new Uri("http://58.22.62.163:888/");pzbHTML5中文学习网 - HTML5先行者学习网

  proxy.Credentials = new NetworkCredential("juese", "1029");pzbHTML5中文学习网 - HTML5先行者学习网

  wc.Proxy = proxy;pzbHTML5中文学习网 - HTML5先行者学习网

  Stream PageHtml = wc.OpenRead("http://www.baidu.com");pzbHTML5中文学习网 - HTML5先行者学习网

  StreamReader reader = new StreamReader(PageHtml, System.Text.Encoding.UTF8);pzbHTML5中文学习网 - HTML5先行者学习网

  string content = reader.ReadToEnd();pzbHTML5中文学习网 - HTML5先行者学习网

  return content;pzbHTML5中文学习网 - HTML5先行者学习网

  三:HttpWebClientProtocol:针对webService的代理IP使用(详情可参加TTS交互服务的WebServiceHelper.cs):pzbHTML5中文学习网 - HTML5先行者学习网

  // 获取WSDLpzbHTML5中文学习网 - HTML5先行者学习网

  WebClient wc = new WebClient();pzbHTML5中文学习网 - HTML5先行者学习网

  stream = wc.OpenRead(url);pzbHTML5中文学习网 - HTML5先行者学习网

  ServiceDesc ription sd = ServiceDesc ription.Read(stream);pzbHTML5中文学习网 - HTML5先行者学习网

  ServiceDesc riptionImporter sdi = new ServiceDesc riptionImporter();pzbHTML5中文学习网 - HTML5先行者学习网

  sdi.AddServiceDesc ription(sd, string.Empty, string.Empty);pzbHTML5中文学习网 - HTML5先行者学习网

  CodeNamespace cn = new CodeNamespace(@namespace);pzbHTML5中文学习网 - HTML5先行者学习网

  // 生成客户端代理类代码pzbHTML5中文学习网 - HTML5先行者学习网

  CodeCompileUnit ccu = new CodeCompileUnit();pzbHTML5中文学习网 - HTML5先行者学习网

  ccu.Namespaces.Add(cn);pzbHTML5中文学习网 - HTML5先行者学习网

  sdi.Import(cn, ccu);pzbHTML5中文学习网 - HTML5先行者学习网

  CSharpCodeProvider icc = new CSharpCodeProvider();pzbHTML5中文学习网 - HTML5先行者学习网

  // 设定编译参数pzbHTML5中文学习网 - HTML5先行者学习网

  CompilerParameters cplist = new CompilerParameters();pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.GenerateExecutable = false;pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.GenerateInMemory = true;pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.ReferencedAssemblies.Add("System.dll");pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.ReferencedAssemblies.Add("System.xm l.dll");pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.ReferencedAssemblies.Add("System.Web.Services.dll");pzbHTML5中文学习网 - HTML5先行者学习网

  cplist.ReferencedAssemblies.Add("System.Data.dll");pzbHTML5中文学习网 - HTML5先行者学习网

  ////此处不停编译,会造成内存泄露pzbHTML5中文学习网 - HTML5先行者学习网

  // 编译代理类pzbHTML5中文学习网 - HTML5先行者学习网

  cr = icc.CompileAssemblyFromDom(cplist, ccu);pzbHTML5中文学习网 - HTML5先行者学习网

  // 生成代理实例,并调用方法pzbHTML5中文学习网 - HTML5先行者学习网

  System.Reflection.Assembly assembly = cr.CompiledAssembly;pzbHTML5中文学习网 - HTML5先行者学习网

  Type t = assembly.GetType(@namespace + "." + classname, true, true);pzbHTML5中文学习网 - HTML5先行者学习网

  ob ject obj = Activator.CreateInstance(t);pzbHTML5中文学习网 - HTML5先行者学习网

  if (ConfigurationManager.AppSettings["UseYeexingProxy"] == "true")pzbHTML5中文学习网 - HTML5先行者学习网

  {pzbHTML5中文学习网 - HTML5先行者学习网

  ICredentials cred;pzbHTML5中文学习网 - HTML5先行者学习网

  WebProxy p = null;pzbHTML5中文学习网 - HTML5先行者学习网

  var prox = obj as HttpWebClientProtocol;pzbHTML5中文学习网 - HTML5先行者学习网

  string proxyAddressAndPort = ConfigurationManager.AppSettings["ProxyIP"];pzbHTML5中文学习网 - HTML5先行者学习网

  string proxyUserName = ConfigurationManager.AppSettings["ProxyName"];pzbHTML5中文学习网 - HTML5先行者学习网

  string proxyPassword = ConfigurationManager.AppSettings["ProxyPwd"];pzbHTML5中文学习网 - HTML5先行者学习网

  cred = new NetworkCredential(proxyUserName, proxyPassword);pzbHTML5中文学习网 - HTML5先行者学习网

  p = new WebProxy(proxyAddressAndPort, true, null, cred);pzbHTML5中文学习网 - HTML5先行者学习网

  prox.Proxy = p;pzbHTML5中文学习网 - HTML5先行者学习网

  System.Reflection.MethodInfo mi = t.GetMethod(methodname);pzbHTML5中文学习网 - HTML5先行者学习网

  return mi.Invoke(prox, args);pzbHTML5中文学习网 - HTML5先行者学习网

  }pzbHTML5中文学习网 - HTML5先行者学习网

  elsepzbHTML5中文学习网 - HTML5先行者学习网

  {pzbHTML5中文学习网 - HTML5先行者学习网

  System.Reflection.MethodInfo mi = t.GetMethod(methodname);pzbHTML5中文学习网 - HTML5先行者学习网

  return mi.Invoke(obj, args);pzbHTML5中文学习网 - HTML5先行者学习网

  }pzbHTML5中文学习网 - HTML5先行者学习网

  在网上查看相关文档,很容易将Proxy属性加在WebClient上,然而此处却直接将Proxy传入,并异步调用易行接口pzbHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助