聚合文章列表
90 浏览

从零实现一款12306抢票软件

写在前面的话每年逢年过节,一票难求读者肯定不陌生。这篇文章,我们带领读者从零实现一款12306刷票软件,其核心原理还是通过发送http请求模拟登录12306网站的购票的过程,最后买到票。关于http请求的格式和如何组装http数据包给服务器发送请求,我们在上一篇文章《从零实现一个http服务器》中已经详细介绍过了,如果还不明白的朋友可以去那篇文章看下。郑重申明一下:这里介绍的技术仅供用于学习,不可用于恶意攻击12306服务器,请勿滥用本文介绍的技术。对12306服务器造成的任何损失,后果自负。当然,由于12306服务器用户量巨大,为了防止黄牛和其他一些非法攻击者,12306的很多url和在购票过程中各个步骤的协议细节经常发生变化。所以,本文中介绍的一些具体的url,可能在你看到本文时已经失效。但是这并没有关系,只要你掌握了本文中介绍的分析方法,您就可以灵活地修改您的代码,以适应最新的12306服务器的要求。举个例子,如12306的查票接口目前的url是:https://kyfw.12306.cn/otn/lef...,可能过几天就变成了h

visual-studio 2018-05-23 发布
20 浏览

ASP.NET Core Identity Hands On(2)——注册、登录、Claim

上一篇文章(ASP.NETCoreIdentityHandsOn(1)——Identity初次体验)中,我们初识了Identity,并且详细分析了AspNetUsers用户存储表,这篇我们将一起学习Identity默认生成的样板代码的注册与登陆过程注册/Register打开AccountController找到publicasyncTask<IActionResult>Register(RegisterViewModelmodel,stringreturnUrl=null)方法这个方法切实的创建用户并存储到数据库,完整的过程代码比较复杂,所以我们用一张表格来展现具体过程,首先看紧挨着箭头的那一列文本,即标题为“工作”的那一列,这是完整的顺序过程,用户创建即从头走到尾。剩余的信息是帮助理解的,因为在Register方法中,并没有展现关键的内容,我列举出他们出现的位置,这样有助于理解在看图片之前,我们先看一下CreateAsync代码,这可能和你的有点不同,因为我删除了一点无关紧要的东西来减少篇幅n

c# 2018-05-23 发布
11 浏览

ASP.NET Core Identity Hands On(1)——Identity 初次体验

ASP.NETCoreIdentity是用于构建ASP.NETCoreWeb应用程序的成员资格系统,包括成员资格、登录和用户数据存储这是来自于ASP.NETCoreIdentity仓库主页的官方介绍,如果你是个萌新你可能不太理解什么是成员资格,那我来解释一下,成员资格由membership直译而来,membership还有会员资格、会员身份、会员全体等相关含义,我们可以将其简单直接但并非十分恰当的理解为用户管理系统ASP.NETCoreIdentity(下文简称Identity),既然可以理解为用户管理系统,那么她自然是十分强大的,包含用户管理的方方面面,简单的来讲包括:用户数据存储(使用任意你喜欢的关系型数据库,从sqllite到mysql、sqlserver等等,由EntityFramwork支持)登陆、注册外加身份认证(基于cookie的身份认证,如果你使用Vs那么还可以生成用于注册登录的用户界面及处理代码)角色管理基于声明的认证模式ClaimsBasedAuthentication(如果你

asp.net 2018-05-22 发布
AD 友情赞助
14 浏览

安利一波软件、插件及其他

题图:pixabay组里大佬说我小工具攒得挺多的,于是我膨胀了。列个单子:不以提高生产率为己任的敲代码都是耍流氓。Mac:iPic-图床神器|Toolinbox图床神器,可上传七牛、又拍、阿里、腾讯、S3等存储。一键上传,自动copy。需付费(已使用一年多,Mac上最好的图床神器)Snap-Mac平台下的快捷键设置App-在Mac下使用机械键盘!快捷键设置,我的配置是:option+1=微信option+2=网易云option+3=Tower…手指不够长,其他的就不常用了。Mac下一款文件辅助软件—NewFileMenuMac下一款文件辅助软件—NewFil…-简书可以新建多种类型的文件DaisyDisk-AnalyzediskusageandfreeupdiskspaceonMacDaisyDist。我笔记本128G的。经常需要删文件。这玩意儿可一键找出大文件,然后自己去删就行了。切忌有些系统级文件不能乱删(以两次重装系统血泪经验告

visual-studio 2018-05-20 发布
17 浏览

webpack的学习之路~~

第01节:认识WebPack的作用:学习的一原因:现在的前端网页功能丰富,特别是SPA(singlepagewebapplication单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决SCSS,Less……新增样式的扩展写法的编译工作。所以现代化的前端已经完全依赖于WebPack的辅助了。现在最流行的三个前端框架,可以说和webpack已经紧密相连,框架官方都推出了和自身框架依赖的webpack构建工具。React.js+WebPackVue.js+WebPackAngluarJS+WebPack从此可以看出,无论你前端走那条线,你都要有很强的Webpack知识,才能祝你成为这个框架领域的大牛。2.对webpack的理解:WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。在3.0出现后,Webpack还肩负起了优化项目的责任。

visual-studio 2018-05-07 发布
13 浏览

旅行青蛙(旅かえる)逆向笔记

温馨提示:阅读本文你的电脑需要安装好apktool、signapk、.NETReflector、dnSpy。他们都可以在github或吾爱云盘上获取。一、APK结构旅行青蛙是个Unity的游戏。简单说下Unity:Unity是一个用于制作3D游戏的C#框架,可以跨平台。也就是说旅行青蛙的核心游戏逻辑在Android和iOS上面是一样的代码。显然Android更容易让我们分析,本文先从APK的结构开始。使用apktool反编译APK,发现Unity游戏的smali代码并没有太多的信息,基本都是调用Google的Ad接口之类的,或者是GooglePlay的应用内购买,就不需要太关心了。lib文件夹中主要都是Unity、Mono等的支持动态库so文件,也不是我们关心的对象。经查阅资料可以得知,Unity游戏的主要逻辑代码存放于assets/bin/Data/Managed下的Assembly-CSharp.dll动态库文件中,C#的dll文件不难分析,我们使用.NETReflector和dnSpy进行分析和修改。二、Assembl

c# 2018-05-05 发布
AD 友情赞助
12 浏览

iOS程序员一用就上瘾的跑马灯视图,怎么可以这么优秀

前言:相信大家在工作中,都会遇到这样一个情况。一个UILabel仅显示一行,在小屏手机中显示不完整出现...但是这些信息又比较重要,不能省略且没有充足的空间换行显示。那么问题来了?这该怎么办呢?这个时候,聪明的产品经理摸了摸双下巴,突然双眼放光“用跑马灯啊”好吧,既然产品经理都给出了精妙绝伦的方案,程序员的使命就是义无反顾地完成它。原理原理很简单,就是用CADisplayLink,根据刷新频率,不停的调整视图的位置就行。为了达到循环显示,需要添加两个一样的视图。为了扩大跑马灯的使用范围,我进行了抽象化处理,并没有写死用UILabel来实现,而是暴露了一个属性contentView:UIView。只要是UIView及其子类,都可以用来进行跑马灯显示。对于复杂的视图,需要自己重写contentView的sizeThatFits方法,返回正确的size即可。具体细节可以看源码了解,这里分享两个骚操作:1、如何实现UIView的拷贝?2、如何断开CADisplayLink的循环引用?大家知道CADisplayLink和NSTi

visual-studio 2018-05-04 发布
17 浏览

用 Visual Studio 开发 Arduino

Arduino官方的IDE虽然不断进步,修复了各种bug。有着简洁明了的界面,让新手可以快速熟悉并专注于开发。但对于一个老司机,缺少代码提示、没有自动补全、没有好用资源管理,这些缺点让人头疼不已。好在已经有大神做了各种各样的插件,让我们可以在更加专业成熟的IDE上进行Arduino开发。其中eclipse和visualstudio就是典型代表。!!特别提示:使用其他IDE之前也必须先安装Arduino官方IDE才可以。Eclipseeclipse作为老牌开源IDE,其启动速度、内存占用,特别是安装插件后,一直饱受诟病。在谷歌官方转到AndroidStudio后,eclipse在我计算机上就此长眠。所以这里也不着重介绍,想用的朋友,这里有热心网友打包好的环境,直接下载解压就可以用啦~传送门:http://eclipse.baeyens.it/VisualStudio然后来重点介绍下VS的配置。根据网友反馈,从vs2015开始即可支持,我用的是2017.1、安装插件安装打开vs后,点击菜单栏的工具-扩展和更新,在打开的窗口点击左

visual-studio 2018-04-20 发布
15 浏览

如何避免 async/await 地狱

简评:async/await写着很爽,不过要注意这些问题。async/await让我们摆脱了回调地狱,但是这又引入了async/await地狱的问题。什么是async/await地狱在Javascript中进行异步编程的时候,人们总是使用很多await语句,很多时候我们的语句并不需要依赖于之前的语句,这样就会导致性能问题。async/await地狱的例子我们试着写一个购买披萨和饮料的程序:(async()=>{constpizzaData=awaitgetPizzaData()//asynccallconstdrinkData=awaitgetDrinkData()//asynccallconstchosenPizza=choosePizza()//synccallconstchosenDrink=chooseDrink()//synccallawaitaddPizzaToCart(chose

asp.net 2018-04-25 发布
AD 友情赞助
11 浏览

Qone 正式开源,使 javascript 支持 .NET LINQ

Qone下一代Web查询语言,使javascript支持LINQGithub:https://github.com/dntzhang/qone缘由最近刚好修改了腾讯文档Excel表格公式的一些bug,主要是修改公式的parser。比如下面的脚本怎么转成javascript运行?=IF(SUM(J6:J7)+SUM(J6:J7)>10,"A2是foo","A2不是foo")公式或一些脚本语言的实现包含几个主要步骤:scanner>lexer>parser>ast>codestring得到codestring之后可以动态运行,比如js里使用eval,eval能保留上下文信息,缺点是执行代码包含编译器代码,eval的安全性等。得到codestring之后也可直接使用生成的codestring运行,缺点是依赖构建工具或者编辑器插件去动态替换源代码。比如wind同时支持JIT和AOT,qone的思

.net 2018-04-25 发布
13 浏览

C语言中关于指针等相关理解和使用事宜

作者:心叶时间:2018-04-2117:24定义指针是一个变量,其值是另一个变量的地址,地址代表的是在内存中的位置。需要记住的是,数组变量本身就是一个指针。地址的类型地址是存在类型的,是不是感觉好奇怪,指针不是代表一个地址的吗,地址还有类型吗?看一个例子:int*ip;/*一个整型的指针*/double*dp;/*一个double型的指针*/float*fp;/*一个浮点型的指针*/char*ch;/*一个字符型的指针*/其实指针永远都只是一个代表一个地址的十六进制数,所谓的类型,指的是指针指向的变量的类型。使用指针如何定义一个指针,前面的例子应该知道了,那么如何打印那个十六进制的地址是多少和或者指针指向的数据是多少://通过&运算符获取了i的地址并保存到intP中去int*intP;=&i;printf("intP存储的地址为:%p,存储的地址指向的数据为:%d\n",intP,*intP);指针可以

c# 2018-04-21 发布
9 浏览

一种国际化Qt应用程序的方法

Qt是一个很方便的C++应用开发框架(或许现在要加上QtQuick开发框架?),不仅仅是程序编写方便面,它提供了很多方便的类库,而且它也提供了很方便的国际化方案(也就是翻译成各国语言的方案)。基本流程编写代码阶段我们先来说说在Qt中实现多国语言翻译需要使用的基本流程。首先我们需要在编写代码的时候就要使用Qt提供的翻译相关的函数来"包裹"住所有的需要翻译的字符串。你说哪些才是需要翻译的字符串呢?就是任何会在用户界面上显示的字符串,如果不会显示自然就不需要翻译了。如果你使用的是C++代码,那么翻译用的函数就是QObject::tr函数。大多数时候,我们看到用到这个函数的时候可能都只是一个tr,因为都是在一个继承自QObject的类中,所以可以直接调用父类的成员函数了。如果是在自由函数中想使用的话就要把完整的函数名QObject::tr写全了。如果你写的是QtQuick的程序,这个函数就变成了qsTr或者是qsTranslate、qsTranslateNoOp...代码写完之后,需要在工程文件

c# 2018-04-25 发布
AD 友情赞助
12 浏览

.Net 全功能控件套包 ComponentOne 2018V1 如约而至,新增多选输入控件和项目模板,加快项目创建速度

ComponentOne2018V1如约而至,新增多选输入控件和项目模板,加快项目创建速度全球最大的控件提供商葡萄城宣布,ComponentOne2018年第一个大版本的正式发布,新版本除了新增多选输入控件MultiSelect,还在Winform、WPF、Mvc框架下,添加了多种项目模板,加快项目创建速度,并使ComponentOne的控件比以往更容易使用。本次主要更新特性:新控件:多选输入控件项目模板全新的Demo演示示例程序新控件:多选输入控件(MultiSelect).Net平台下的MultiSelect是一个下拉控件,它扩展了ComboBox并在下拉列表中的每个项目旁边添加了复选框,允许用户从列表中选择多个项目。新添加Winform、WPF、Mvc框架下的项目模板大大提高了项目启动效率。当用户使用该模板创建新项目时,用户可以为该项目选择一个主题并使用所选主题对所有控件进行样式设置,此外,项目模板同样支持Office2016主题。点击了解更多关于项目模板的新特性。Componen

c# 2018-04-25 发布
101 浏览

Pro ASP.NET Core MVC 2翻译计划:第一章

ASP.NETCOREMVC2介绍对于Microsoft平台上的Web开发人员来说,使用ASP.NETCoreMVC是一次彻底的转变。它强调整洁的架构,设计模式和可测试性,并且不会试图隐藏Web的工作方式。ASP.NETCoreMVCisaradicalshiftforwebdevelopersusingtheMicrosoftplatform.Itemphasizescleanarchitecture,designpatterns,andtestability,anditdoesn’ttrytoconcealhowtheWebworks.本书的第一部分旨在帮助你广泛理解MVC开发,包括ASP.NETCoreMVC中的新功能,以及在实践中体验框架的使用方式。ThefirstpartofthisbookisdesignedtohelpyouunderstandbroadlythefoundationalideasofMVC

c# 2018-04-19 发布
17 浏览

.net core项目实战汇总

最近公司的一个小项目尝试使用.netcore作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的。这里记录下整体开发过程,用于备忘和分享背景项目需求其实很简单,类似于一个简单的审批+简单的任务管理系统,但需要同时有PC端和APP端。由于项目规模不大,时间也比较宽裕,组内商量下来干脆全采用新技术来踩踩坑。这么一提,大家积极性比较高,既完成了任务同时也能学到新的知识。前后端大家做了一个分工,前端讨论下来采用React+AntDesign(不是我所关注的),后端我们决定下来用.netcore开发并部署在docker下,这对我们来说还是有一定挑战的,一来是没底,毕竟周边没有一个成熟的项目使用,二来我们也不是很了解。但经过调研发现,还是有很多成熟案例的,所以最终拍板下来就这样做了。但从后面的开发经历来看,踩的坑真的不少。项目架构讨论这里只说后端部分,我们在讨论后端架构的同时,前端小伙伴已经着手开始搭建框架和设计原型了。在架构方面其实大家基本观点一致的,虽然项目小,但五脏俱全,前端不仅有PC,还有APP。对后端来

c# 2018-04-17 发布
93 浏览

Unity中利用Editor显示中文属性

如何在Unity中显示中文属性,汉化你的脚本,更方便的修改脚本属性?这里利用Editor来实现。先上效果图:用法:1.在Unity中新建一个Editor文件夹2.在Editor文件夹下新建一个RenameEditor.cs脚本,把以下代码复制到脚本里。Editor文件夹是Unity中的特殊文件夹,可以放在任意目录下,Editor下的所有文件包括脚本都不会被打包进发布版里usingUnityEngine;usingUnityEditor;///<summary>///重命名属性编辑器///<para>ZhangYu2018-04-18</para>///</summary>publicclassRenameEditor:Editor{//需要重命名的键值对儿protectedstring[]renameKeyValues;protectedstring[]renameKeys;protectedstring

c# 2018-04-18 发布
21 浏览

利用angular4和nodejs-express构建一个简单的网站(十)—好友模块

上一章讲解了用户登录的相关代码。用户登录成功后,就会进入好友模块,在好友模块中会根据不同的用户ID显示相应的好友列表,点击好友列表中的单个好友就会进入编辑单个好友页面,对好友信息进行编辑。点击列表页面的添加按钮,就会添加新的好友。我们从这一章开始分析这个好友模块。模块代码分析模块基本代码如下:import{NgModule}from'@angular/core';import{CommonModule}from'@angular/common';import{ReactiveFormsModule}from'@angular/forms';import{HTTP_INTERCEPTORS}from'@angular/common/http';import{BirthdaysComponent}from'./birthdays/birthdays.component';import{BirthdayListComponent}from'./birthday-list/bir

visual-studio 2018-04-09 发布
18 浏览

[效率] HHKB键盘 + Autohotkey 配置秘籍

由于已经厌倦了机械键盘,又实在无法抵挡HHKB的颜值,入手了一枚hhkbpro2。入手之后立刻傻眼,方向键不仅需要按Fn键才能触发,那憋屈的键位让我这用方向键与Ctrl+C一样多的程序猿情何以堪!好在我是程序猿,天生不怕折腾,在经过设置SW开关、使用Autohotkey改键、设置Win10系统权限等一系列的折腾之后,终于可以舒服的使用这款HHKB写代码了,效率更超之前的机械键盘。设置SW开关SW1on、SW2off=Liteext模式,既◇键为Win键。SW3on=Delete键改为退格键。SW4on=左侧◇键为Fn键。SW5off=不交换◇与Alt键。SW6on=启用唤醒功能。使用Autohotkey改键首先要解决方向键问题。我并不是Emacs/Vim党,想来想去还是把“上下左右”的快捷键设置成Ctrl+I、K、J、L比较直观。另外,编代码时跳到行首、行尾的操作也很多,所以可以再加上Ctrl+H跳到行首,Ctrl+'跳到行

c# 2018-04-08 发布
17 浏览

【资源】我的电子书仓库

可能是有点强迫症、囤书症。在我看来电子书是必须得有目录的,我不可能记住知识点的页数,但是一般在网上下载到的基本都是没有书签的,有书签的相对而言太少了,每次找都非常痛苦。写代码也差不多有两年,也有小小的自己的“财富库”了,但懒一直没机会整理,今天下定决心终于好好收拾了一番,把囤货全贡献给CSDN,里面几乎每本都是有完整书签的,覆盖面比较广种类比较杂,Java、C#、JavaScript、设计模式、数据库等..,大家自行挑选吧。大概如下所示:最后欢迎大家下载了,我也会不定时更新的...感谢!下载地址:https://download.csdn.net/use...

c# 2018-04-06 发布
167 浏览

C#使用CefSharp页面空白的解决办法

按照CefSharp官方教程部署并编写第一个应用,你可能会碰到两个坑:1、无法编译,提示找不到文件Microsoft.Cpp.Default.props解决办法:安装以下组件原因是About30%ofthebindingsarewritteninC++/CLIwiththemajorityofcodehereisC#2、窗口一片空白,无法显示网页解决办法:在解决方案属性——配置——平台新增并选择x86

c# 2018-04-06 发布
AD 友情赞助