12306.cn网站自动登录器源代码

news/2024/5/10 17:31:48/文章来源:https://blog.csdn.net/weixin_34336526/article/details/89747072

去年过年放假的时候写了一个12306.cn网站的自动登录器,刚好那时候放假了,所以没把源代码放出来,现在将代码发出来,由于编写得比较仓促(从放假的下午19:00左右到晚上到00:00左右),很多细节问题考虑不是很全面,如断网的情况未考虑,界面比较简单,错误之处请大家批评指正.

注意:本程序基于.net framework4.0编写,UI使用WPF
源代码下载地址1:http://115.com/file/e7l5t4uw
源代码下载地址2:http://files.cnblogs.com/loyldg/AutoLogin12306_src.rar
其实自动登录比较简单,就是发送一个http请求并传递参数,然后对响应的结果进行分析处理.下面我列出需要注意的几个问题.
1.发送http请求时,需要对传递的参数进行Url编码(使用HttpUtility.UrlEncode方法)
2.刷新验证码后,需要将当前的Cookie信息替换(刷新验证码后会产生的新的Cookie,使用此Cookie替换原有Cookie信息即可)
3.处理Https证书问题,直接信任所有证书即可.
 
复制代码
        private  void SetCertificatePolicy()
{
ServicePointManager.ServerCertificateValidationCallback
+= RemoteCertificateValidate;
}

private bool RemoteCertificateValidate(
object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors error)
{
return true;
}
复制代码
 
4.登录成功后,打开IE浏览器,并将登录成功后的Cookie信息传递到IE浏览器,这里需要使用到InternetSetCookie方法,该方法在wininet.dll中.
关键代码如下:
复制代码
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrl, string lbszCookieName, string lpszCookieData);

private void OpenIEWithCookie(CookieCollection cookies,string url)
{
string expires = "expires=Sun,22-Feb-2099 00:00:00 GMT";
foreach (Cookie item in cookies)
{
bool isSuccess= InternetSetCookie(item.Path, item.Name, string.Format("{0};{1}",item.Value,expires));
if (!isSuccess)
{
int errorCode = Marshal.GetLastWin32Error();
App.Messenger.NotifyColleagues(Msg.APPEND_MESSAGE, "set cookie error,errorCode:"+errorCode);
}
}
string ieFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\Internet Explorer\\iexplore.exe";
if (File.Exists(ieFilePath))
{
System.Diagnostics.Process.Start(ieFilePath, url);
App.Messenger.NotifyColleagues(Msg.APPEND_MESSAGE, "Open Url:" + url);
}
else
{
App.Messenger.NotifyColleagues(Msg.APPEND_MESSAGE, "未找到IE浏览器");
}
}
复制代码


作者:loyldg 
出处:http://www.cnblogs.com/loyldg/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如有问题,可以邮件:loyldg@126.com  联系我,非常感谢。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_747945.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让你不再恋家的9款小众时尚的酒店网站设计

一场说走就走的旅行少不了一家精挑细选的酒店。出门在外,没有一个舒适的住处,恐怕旅行的记忆也并不是那么美好。大牌酒店住不起,小众酒店性价比高,但哪家最合适?网上攻略必不可少。 作为主观性非常强的视觉性动物&…

web+php网站开发_2011年起的10 ++最佳Web开发人员资源和工具(第1部分)

webphp网站开发今天为您提供的是我们从2011年以来认为最有用和最具创新性的工具和资源的精选。我们提出了广泛的清单,但我们仅向您提供20种工具和资源(包括框架,样板,应用,JavaScript资源,CSS3动画工具等&a…

大型网站压力测试及优化方案

大型网站压力测试及优化方案 目录 木桶理论应用在系统优化中压力测试如何实施常用压力测试工具选型如何监控系统资源,定位性能瓶颈针对测试报告进行针对性优化使用JMeter进行压力测试实践木桶理论应用在系统优化中木桶理论又称短板理论,其核心思想是一只…

web+php网站开发_2011年起的10 ++最佳Web开发人员资源和工具(第2部分)

webphp网站开发正如我们在上一篇文章中所承诺的,这是我们认为是2011年以来最有用和创新的工具和资源 (包括框架,样板,应用程序,JavaScript资源,CSS3动画工具)的第二部分(也是最后一部…

爱回收网站,js请求过程分析

aihuishou 最近在qq群里看到有个小伙伴在问爱回收网站怎么爬取手机价格信息。 爱回收网站,在网站中大量使用了js动态改变DOM元素,而且请求的参数使用的是paylaod加密。我们在分析网站的时候看不到参数,也就分析不出来请求参数的规律&#xff…

教你在Nginx上使用CertBot把自己网站设置成HTTPS

前言 自己做了一个博客,需要访问自己的网站获取数据,但是系统默认只能直接访问https的网站。不想让应用改用http的服务。因此,研究如何启用https,本文即是介绍如何在CentOS上配合Nginx使用CertBot。 环境 Ubuntu Nginx 安装Ce…

10个有用的jQuery插件,可将Twitter整合到博客/网站中

我们都知道,Twitter已成为全世界最流行和盛行的社交网络之一,用于在线交流和讨论。 将Twitter带入您的网站将帮助您吸引访问者并宣传您的内容,而将Twitter集成到网站中的最简单方法是Tweeter本身创建的小部件? 现在不行了&#xf…

Python基础教程学习:遇到需要的登录的网站怎么办?学好python,用这3招轻松搞定

Python基础教程学习:遇到需要的登录的网站怎么办?学好python,用这3招轻松搞定 你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作。。。。。 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 把这几招…

jquery mobile_15个令人兴奋的jQuery Mobile网站示例

jquery mobile有数百个(甚至数千个)使用jQuery mobile构建的网站,所以今天我们将与您分享15个令人兴奋的jQuery mobile网站的集合,以获取您的想法和灵感。 陷入困境并享受乐趣! 相关文章: 50个jQuery Mob…

15个令人兴奋的jQuery Mobile网站示例

有数百个(甚至数千个)使用jQuery mobile构建的网站,所以今天我们将与您分享15个令人兴奋的jQuery mobile网站的集合,以获取您的想法和灵感。 陷入困境并享受乐趣! 相关文章: 50个jQuery Mobile开发技巧 聚…

python爬虫反反爬,你几乎可以横扫大部分 css 字体加密的网站

你已经知道了对方是 如何自定义字体加密的了 你要想去反反爬 你就要先站在对方的角度去思考问题 有句话这么说来着 “知己知彼,才能那啥” 那么对于像猫眼电影、大众点评等等 那样的 css 自定义字体加密 应该怎么破呢? 接下来就是 学习 python 的…

比较好的Java 网站

比较好的Java 网站javaboys 51cto技术博客[%title%][%count%]票 [[%percent%]%] 比较好的Java 网站1. The Source for Java Technology Collaboration(JAVA开发的官方网站) [url]http://www.java.net/[/url] - 外文 2. jGuru: FAQ Home Page 推荐 [url]http://www…

爬取某网站所有的乌云漏洞公共文章,并保存为pdf文件

鼎鼎大名的乌云网站,仅存在6年左右,就停摆,真是可惜。。。 从某网站爬取所有公开的乌云漏洞文章,保存为pdf格式,以作纪念学习使用 首先创建一个文件夹wooyun,把下面代码保存为test.py,然后放在该…

Nginx基础篇(八);Nginx访问认证、网站展示目录结构浏览网页

Table of Contents 一、参数说明 二、实现访问认证步骤 三、Nginx访问认证出现状态码403 forbidden的原因 四、在网站展示目录结构 需求:在实际工作企业中有时需要我们为网站设置访问账号和密码权限,这样操作后,只有拥有账号密码的人才能…

wp 新窗口插件_适用于您的WP网站的10个令人兴奋的新jQuery插件

wp 新窗口插件今天,我们将向您分享我们的jQuery驱动插件集合,这些集合为您喜欢的WordPress网站增加了凉爽和交互式效果。 请享用! 另请参阅: 100个WordPress jQuery插件 1.破坏性谈话 它是一个phono小部件,可让Word…

Nginx架构篇(三);LNMP架构实现discuz和wordpress搭建:MySQL多实例、主主及主从复制、读写分离及nfs网站代码集中式管理(后续可以为数据库添加MHA,DRBD)

文章目录一、环境搭建及主从复制基础知识二、NFS服务器的配置三、Nginx服务器的配置四、PHP服务器需要做的配置(两个PHP都是一样的配置)五、MySQL多实例:主主、主从复制,读写分离先给3307数据库和3308数据库做主主复制再给3307数据…

LNMP+zabbix监控平台部署(采用阿里云服务器一体化部署监控wordpress网站)

部署前须知: 一般情况下,我们是将其中Zabbix-Server、Zabbix-Proxy、Zabbix-Web、Zabbix-Database专门部署在一台独立服务器上,Zabbix-Agent一般部署在需要被监控的网站的服务器上。 由于资金限制,本人只有一台阿里云服务器,所以…

jQuery网站/博客-全球最佳

这是Internet上最好的jQuery网站和博客的集合(或者至少是到目前为止我发现的博客)。如果您想出现在此列表中,请发表评论并证明自己的理由。 相关文章: 进入互联网的十大jQuery Gurus blog.jquery.com 写更少,做更多&am…

2019升级版最新Python学习路线:关于电影购票网站实现的讲解

这次的Python学习路线跟大家讲一下关于电影购票网站的实现。这几天咱们国产的哪吒很火嘛! 1. 用户功能 同前面所有项目的用户功能,利用AjaxDjango系统认证QQ邮箱实现登陆注册 2. 用户未登陆会跳转到注册登录界面,登录后会返回至主页&#…

jquerymobile_使用jQueryMobile从桌面到移动网站的转换

jquerymobilejQuery Mobile是用于制作移动Web应用程序的强大框架。 但是,我们可以使用它将现有的桌面网站转换为移动形式吗? 可以使用MobilizeToday.com在线服务。 它们提供了基于小部件的模型,该模型将任何现有HTML内容表示到移动视图中。 …