跨域访问的验证码问题(转)

方法一:

1,请求首页面,获得cookie,并保存cookie备用(注:session 也是cookie的一种)
2,请求附加码,并显示在自己的页面,注意,请求附加码的时候,一定要用第一步得到的cookie去请求,请求完毕后如果有新的cookie则继续保存。
3,人工输入附加码,post到最终的页面。
------------------------------------------------------------------------------
方法二:

1、首先要获得目标网站的cookies,根据不同的网站,你可以使用不同的方法。
一般来讲,你需要先请求验证码所在页面,这样服务器就会把相关的cookies写到你的container里边。
当然,你也可以从本地缓存里边取出来ie已经存放的cookie,不过这个在.net3.0以上平台很好办,在3.0以下平台需要你平台调用API才能获得。
2、简单的就是:

在你的代码中,在请求图片前先请求一下所在的页面。当然,下来请求图片的时候,一定要指定使用同一个CookieContainer对象。

 

 

HttpWebRequest   request   =   (HttpWebRequest)WebRequest.Create(Url);  
  HttpContext.Current.Session["PageCookie"]   =   req.CookieContainer.GetCookieHeader(new   Uri("所请求站点的COOKIE所带的HOST")));  
  --------------------------------------------  
  下次要附加COOKIE时:  
  HttpWebRequest   req   =   (HttpWebRequest)WebRequest.Create(url);  
  req.Headers.Add("cookie:"+HttpContext.Current.Session["PageCookie"].ToString());  

posted on 2009-06-09 22:44  imbob  阅读(1365)  评论(2)    收藏  举报

导航