莫言科技

全过程、自定制,轻松实现跨 旅游集散中心自助游

票务与调度系统(独立版) 整合旅游集散中心资源,提供 自助半自助游自定义套餐

面向有志创业的人士、基于云 计算理念提供的创业产品

敬请期待

查看: 2857|回复: 4

asp.net程序使用代理访问网页——自动检测问题解决,求详解-凯发k8官网下载客户端

[复制链接]
发表于 2010-12-23 22:53:02 | 显示全部楼层 |
本帖最后由 star 于 2010-12-24 14:43 编辑
% p* b9 j8 v5 u& |# l1 a4 ]9 y6 k
. p* s7 \) v' h0 m2 q# u, [第一种解决办法是针对使用webclient访问网页的:为webclient配置proxy属性,下面是网上的一个距离,源地址是
  1. webclient   clt   =   new   webclient(); , l# a. d: x; o# _% o. v y
  2. webproxy   proxy   =   new   webproxy( "proxyserver ",   80);6 r, i$ m9 u! b1 t s$ e
  3. networkcredential   crd   =   new   networkcredential( "username ",    "password ",    "domain "); " x" x# b& t6 z
  4. proxy.credentials   =   crd; * u, l0 j8 e) [1 o, z) `
  5. clt.proxy   =   proxy;
复制代码
但是eb_exp中使用的是httpwebrequest,这个的解决办法也是为httpwebrequest配置proxy信息,httpwebrequest对象也有proxy属性的* q7 r7 n3 m i3 y0 r
" }! j4 g. y2 z( e
可是,应该是程序自动检测用户浏览器是否使用了代理,使用了代理则获取用户浏览器中设置的代理的username和password等信息访问网络(不知道这个是否可行),如果没有使用代理,则直接访问
/ b, i9 `( z7 f7 f* v- l- i
  \7 m# f$ ]& [5 i- s功能的关键是:' {- s$ ^9 o2 p1 g
1、asp.net使用代理访问网络
  z6 p5 n7 i5 f6 ]  r4 k* d( x2、代理自动检查与获取
 楼主| 发表于 2010-12-24 14:17:28 | 显示全部楼层
可以如下面的代码示例所示,通过将空 proxy 用于您的请求,禁用请求级别的自动代理检测
  1. public static void disableformyrequest (uri resource)' m) w. ]. \: m
  2. {/ d. a  |0 v0 n/ |0 v2 z
  3.     webrequest request = webrequest.create (resource);7 v: w4 l/ ^9 f: m
  4.     request.proxy = null;. k7 h9 ?; s( _- m3 t* l9 q6 x6 t
  5.     webresponse response = request.getresponse ();0 ~  n  k0 l5 e3 m6 y
  6. }
复制代码
 楼主| 发表于 2010-12-24 14:22:23 | 显示全部楼层
所以说,代理的检测是.net做的事情咯?
 楼主| 发表于 2010-12-24 14:42:03 | 显示全部楼层
实验:
3 p, `4 [/ c4 _4 k  j( r在eb_exp系统中使用“前往”进行测试:1 v- [" e( m2 ~, ?2 k7 w
part1:程序是否能自动检测ie内核的浏览器的代理
4 i( \- r' o' u6 n6 d1、ie中不启用代理服务,“前往”,是不可以访问,在校园环境下,则弹出校园网认证窗口drcom上网登录窗5 u' g7 a5 m" j% v
2、ie中启用代理服务,可以在浏览区显示cnn的网页
% v! p% g( q( t, k8 `6 lpart2:ie内核以外的浏览器:使用火狐做实验
* `9 l1 j0 v% }3 z' n. j/ h% w# ^1、火狐中不启用代理不能访问;火狐中启用代理能访问;1 p5 v' ?# ^  k
2、ie中启用代理,火狐中不启用,使用火狐浏览器不能访问:说明不同浏览器访问网络是基于其本身设置的
- y& ` p" |( s1 i$ o  l
" q' l: b: ^% w& w& o总结:.net开发的系统是能自动检测查找代理的,在程序中不用进行代码设置,如果要禁用代理服务,则在程序中将httpwebrequest或者webclient的proxy属性设置为null
7 e( }0 y% f6 z" q) c1、
 楼主| 发表于 2010-12-24 14:42:53 | 显示全部楼层
好啦,不过还需要了解浏览器访问网络资源的原理,才能解释清楚这个问题呀

||archiver|莫言科技 ( )   

gmt 8, 2020-9-5 20:13 , processed in 0.089847 second(s), 12 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表