跨域访问的验证码问题(转)
方法一:
1,请求首页面,获得cookie,并保存cookie备用(注:session 也是cookie的一种)
2,请求附加码,并显示在自己的页面,注意,请求附加码的时候,一定要用第一步得到的cookie去请求,请求完毕后如果有新的cookie则继续保存。
3,人工输入附加码,post到最终的页面。
------------------------------------------------------------------------------
方法二:
1、首先要获得目标网站的cookies,根据不同的网站,你可以使用不同的方法。
一般来讲,你需要先请求验证码所在页面,这样服务器就会把相关的cookies写到你的container里边。
当然,你也可以从本地缓存里边取出来ie已经存放的cookie,不过这个在.net3.0以上平台很好办,在3.0以下平台需要你平台调用API才能获得。
2、简单的就是:
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());
版权声明:本文原创发表于 博客园,作者为 imbob,博客 http://imbob.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
浙公网安备 33010602011771号