刷卡客户端实现

刷卡客户端实现

客户端界面效果图:

2.客户端功能实现

一:窗体代码

  1 namespace WriteCard
  2 {
  3     partial class FrmCard
  4     {
  5         /// <summary>
  6         /// 必需的设计器变量。
  7         /// </summary>
  8         private System.ComponentModel.IContainer components = null;
  9 
 10         /// <summary>
 11         /// 清理所有正在使用的资源。
 12         /// </summary>
 13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 14         protected override void Dispose(bool disposing)
 15         {
 16             if (disposing && (components != null))
 17             {
 18                 components.Dispose();
 19             }
 20             base.Dispose(disposing);
 21         }
 22 
 23         #region Windows 窗体设计器生成的代码
 24 
 25         /// <summary>
 26         /// 设计器支持所需的方法 - 不要
 27         /// 使用代码编辑器修改此方法的内容。
 28         /// </summary>
 29         private void InitializeComponent()
 30         {
 31             this.btnCard = new System.Windows.Forms.Button();
 32             this.txtCardNo = new System.Windows.Forms.TextBox();
 33             this.label1 = new System.Windows.Forms.Label();
 34             this.label2 = new System.Windows.Forms.Label();
 35             this.lblShuaCardtime = new System.Windows.Forms.Label();
 36             this.groupBox1 = new System.Windows.Forms.GroupBox();
 37             this.label8 = new System.Windows.Forms.Label();
 38             this.label9 = new System.Windows.Forms.Label();
 39             this.label10 = new System.Windows.Forms.Label();
 40             this.txtSchool = new System.Windows.Forms.TextBox();
 41             this.txtIDCard = new System.Windows.Forms.TextBox();
 42             this.txtPosition = new System.Windows.Forms.TextBox();
 43             this.label3 = new System.Windows.Forms.Label();
 44             this.label6 = new System.Windows.Forms.Label();
 45             this.label5 = new System.Windows.Forms.Label();
 46             this.label4 = new System.Windows.Forms.Label();
 47             this.txtClass = new System.Windows.Forms.TextBox();
 48             this.txtSex = new System.Windows.Forms.TextBox();
 49             this.txtName = new System.Windows.Forms.TextBox();
 50             this.txtCard = new System.Windows.Forms.TextBox();
 51             this.menuStrip1 = new System.Windows.Forms.MenuStrip();
 52             this.信息设置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 53             this.groupBox1.SuspendLayout();
 54             this.menuStrip1.SuspendLayout();
 55             this.SuspendLayout();
 56             // 
 57             // btnCard
 58             // 
 59             this.btnCard.Location = new System.Drawing.Point(301, 39);
 60             this.btnCard.Name = "btnCard";
 61             this.btnCard.Size = new System.Drawing.Size(75, 23);
 62             this.btnCard.TabIndex = 0;
 63             this.btnCard.Text = "刷卡";
 64             this.btnCard.UseVisualStyleBackColor = true;
 65             this.btnCard.Click += new System.EventHandler(this.btnCard_Click);
 66             // 
 67             // txtCardNo
 68             // 
 69             this.txtCardNo.Location = new System.Drawing.Point(78, 39);
 70             this.txtCardNo.Name = "txtCardNo";
 71             this.txtCardNo.Size = new System.Drawing.Size(205, 21);
 72             this.txtCardNo.TabIndex = 1;
 73             // 
 74             // label1
 75             // 
 76             this.label1.AutoSize = true;
 77             this.label1.Location = new System.Drawing.Point(29, 42);
 78             this.label1.Name = "label1";
 79             this.label1.Size = new System.Drawing.Size(41, 12);
 80             this.label1.TabIndex = 7;
 81             this.label1.Text = "卡号:";
 82             // 
 83             // label2
 84             // 
 85             this.label2.AutoSize = true;
 86             this.label2.Location = new System.Drawing.Point(29, 66);
 87             this.label2.Name = "label2";
 88             this.label2.Size = new System.Drawing.Size(65, 12);
 89             this.label2.TabIndex = 8;
 90             this.label2.Text = "刷卡时间:";
 91             // 
 92             // lblShuaCardtime
 93             // 
 94             this.lblShuaCardtime.AutoSize = true;
 95             this.lblShuaCardtime.Location = new System.Drawing.Point(100, 66);
 96             this.lblShuaCardtime.Name = "lblShuaCardtime";
 97             this.lblShuaCardtime.Size = new System.Drawing.Size(41, 12);
 98             this.lblShuaCardtime.TabIndex = 9;
 99             this.lblShuaCardtime.Text = "******";
100             // 
101             // groupBox1
102             // 
103             this.groupBox1.Controls.Add(this.label8);
104             this.groupBox1.Controls.Add(this.label9);
105             this.groupBox1.Controls.Add(this.label10);
106             this.groupBox1.Controls.Add(this.txtSchool);
107             this.groupBox1.Controls.Add(this.txtIDCard);
108             this.groupBox1.Controls.Add(this.txtPosition);
109             this.groupBox1.Controls.Add(this.label3);
110             this.groupBox1.Controls.Add(this.label6);
111             this.groupBox1.Controls.Add(this.label5);
112             this.groupBox1.Controls.Add(this.label4);
113             this.groupBox1.Controls.Add(this.txtClass);
114             this.groupBox1.Controls.Add(this.txtSex);
115             this.groupBox1.Controls.Add(this.txtName);
116             this.groupBox1.Controls.Add(this.txtCard);
117             this.groupBox1.Location = new System.Drawing.Point(31, 87);
118             this.groupBox1.Name = "groupBox1";
119             this.groupBox1.Size = new System.Drawing.Size(252, 228);
120             this.groupBox1.TabIndex = 13;
121             this.groupBox1.TabStop = false;
122             this.groupBox1.Text = "人员信息";
123             // 
124             // label8
125             // 
126             this.label8.AutoSize = true;
127             this.label8.Location = new System.Drawing.Point(8, 192);
128             this.label8.Name = "label8";
129             this.label8.Size = new System.Drawing.Size(65, 12);
130             this.label8.TabIndex = 27;
131             this.label8.Text = "所属学校:";
132             // 
133             // label9
134             // 
135             this.label9.AutoSize = true;
136             this.label9.Location = new System.Drawing.Point(10, 163);
137             this.label9.Name = "label9";
138             this.label9.Size = new System.Drawing.Size(65, 12);
139             this.label9.TabIndex = 26;
140             this.label9.Text = "身份证号:";
141             // 
142             // label10
143             // 
144             this.label10.AutoSize = true;
145             this.label10.Location = new System.Drawing.Point(22, 136);
146             this.label10.Name = "label10";
147             this.label10.Size = new System.Drawing.Size(41, 12);
148             this.label10.TabIndex = 25;
149             this.label10.Text = "职称:";
150             // 
151             // txtSchool
152             // 
153             this.txtSchool.Location = new System.Drawing.Point(71, 187);
154             this.txtSchool.Name = "txtSchool";
155             this.txtSchool.Size = new System.Drawing.Size(159, 21);
156             this.txtSchool.TabIndex = 23;
157             // 
158             // txtIDCard
159             // 
160             this.txtIDCard.Location = new System.Drawing.Point(71, 160);
161             this.txtIDCard.Name = "txtIDCard";
162             this.txtIDCard.Size = new System.Drawing.Size(159, 21);
163             this.txtIDCard.TabIndex = 22;
164             // 
165             // txtPosition
166             // 
167             this.txtPosition.Location = new System.Drawing.Point(71, 133);
168             this.txtPosition.Name = "txtPosition";
169             this.txtPosition.Size = new System.Drawing.Size(159, 21);
170             this.txtPosition.TabIndex = 21;
171             // 
172             // label3
173             // 
174             this.label3.AutoSize = true;
175             this.label3.Location = new System.Drawing.Point(19, 106);
176             this.label3.Name = "label3";
177             this.label3.Size = new System.Drawing.Size(41, 12);
178             this.label3.TabIndex = 20;
179             this.label3.Text = "班级:";
180             // 
181             // label6
182             // 
183             this.label6.AutoSize = true;
184             this.label6.Location = new System.Drawing.Point(22, 81);
185             this.label6.Name = "label6";
186             this.label6.Size = new System.Drawing.Size(35, 12);
187             this.label6.TabIndex = 19;
188             this.label6.Text = "性别:";
189             // 
190             // label5
191             // 
192             this.label5.AutoSize = true;
193             this.label5.Location = new System.Drawing.Point(22, 52);
194             this.label5.Name = "label5";
195             this.label5.Size = new System.Drawing.Size(41, 12);
196             this.label5.TabIndex = 18;
197             this.label5.Text = "姓名:";
198             // 
199             // label4
200             // 
201             this.label4.AutoSize = true;
202             this.label4.Location = new System.Drawing.Point(22, 25);
203             this.label4.Name = "label4";
204             this.label4.Size = new System.Drawing.Size(41, 12);
205             this.label4.TabIndex = 17;
206             this.label4.Text = "卡号:";
207             // 
208             // txtClass
209             // 
210             this.txtClass.Location = new System.Drawing.Point(71, 103);
211             this.txtClass.Name = "txtClass";
212             this.txtClass.Size = new System.Drawing.Size(159, 21);
213             this.txtClass.TabIndex = 16;
214             // 
215             // txtSex
216             // 
217             this.txtSex.Location = new System.Drawing.Point(71, 76);
218             this.txtSex.Name = "txtSex";
219             this.txtSex.Size = new System.Drawing.Size(159, 21);
220             this.txtSex.TabIndex = 15;
221             // 
222             // txtName
223             // 
224             this.txtName.Location = new System.Drawing.Point(71, 49);
225             this.txtName.Name = "txtName";
226             this.txtName.Size = new System.Drawing.Size(159, 21);
227             this.txtName.TabIndex = 14;
228             // 
229             // txtCard
230             // 
231             this.txtCard.Location = new System.Drawing.Point(71, 22);
232             this.txtCard.Name = "txtCard";
233             this.txtCard.Size = new System.Drawing.Size(159, 21);
234             this.txtCard.TabIndex = 13;
235             // 
236             // menuStrip1
237             // 
238             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
239             this.信息设置ToolStripMenuItem});
240             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
241             this.menuStrip1.Name = "menuStrip1";
242             this.menuStrip1.Size = new System.Drawing.Size(380, 24);
243             this.menuStrip1.TabIndex = 14;
244             this.menuStrip1.Text = "menuStrip1";
245             // 
246             // 信息设置ToolStripMenuItem
247             // 
248             this.信息设置ToolStripMenuItem.Name = "信息设置ToolStripMenuItem";
249             this.信息设置ToolStripMenuItem.Size = new System.Drawing.Size(65, 20);
250             this.信息设置ToolStripMenuItem.Text = "信息设置";
251             // 
252             // FrmCard
253             // 
254             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
255             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
256             this.ClientSize = new System.Drawing.Size(380, 322);
257             this.Controls.Add(this.groupBox1);
258             this.Controls.Add(this.lblShuaCardtime);
259             this.Controls.Add(this.label2);
260             this.Controls.Add(this.label1);
261             this.Controls.Add(this.txtCardNo);
262             this.Controls.Add(this.btnCard);
263             this.Controls.Add(this.menuStrip1);
264             this.MainMenuStrip = this.menuStrip1;
265             this.Name = "FrmCard";
266             this.Text = "IC卡考勤刷卡";
267             this.groupBox1.ResumeLayout(false);
268             this.groupBox1.PerformLayout();
269             this.menuStrip1.ResumeLayout(false);
270             this.menuStrip1.PerformLayout();
271             this.ResumeLayout(false);
272             this.PerformLayout();
273 
274         }
275 
276         #endregion
277 
278         private System.Windows.Forms.Button btnCard;
279         private System.Windows.Forms.TextBox txtCardNo;
280         private System.Windows.Forms.Label label1;
281         private System.Windows.Forms.Label label2;
282         private System.Windows.Forms.Label lblShuaCardtime;
283         private System.Windows.Forms.GroupBox groupBox1;
284         private System.Windows.Forms.Label label6;
285         private System.Windows.Forms.Label label5;
286         private System.Windows.Forms.Label label4;
287         private System.Windows.Forms.TextBox txtClass;
288         private System.Windows.Forms.TextBox txtSex;
289         private System.Windows.Forms.TextBox txtName;
290         private System.Windows.Forms.TextBox txtCard;
291         private System.Windows.Forms.Label label8;
292         private System.Windows.Forms.Label label9;
293         private System.Windows.Forms.Label label10;
294         private System.Windows.Forms.TextBox txtSchool;
295         private System.Windows.Forms.TextBox txtIDCard;
296         private System.Windows.Forms.TextBox txtPosition;
297         private System.Windows.Forms.Label label3;
298         private System.Windows.Forms.MenuStrip menuStrip1;
299         private System.Windows.Forms.ToolStripMenuItem 信息设置ToolStripMenuItem;
300     }
301 }
View Code

二:后台代码

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 using System.IO;
 10 using System.Net;
 11 using Newtonsoft.Json;
 12 using System.Runtime.Serialization.Json;
 13 using System.Runtime.Serialization;
 14 namespace WriteCard
 15 {
 16     public partial class FrmCard : Form
 17     {
 18         string strURL = "http://localhost:15402/Handler1.ashx";
 19         public FrmCard()
 20         {
 21             InitializeComponent();
 22         }
 23         /// <summary>
 24         /// 刷卡操作
 25         /// </summary>
 26         /// <param name="sender"></param>
 27         /// <param name="e"></param>
 28         private void btnCard_Click(object sender, EventArgs e)
 29         {
 30             this.lblShuaCardtime.Text = DateTime.Now.ToString();
 31             string strCardNo = this.txtCardNo.Text;//卡号变量
 32             string postData = strCardNo;//要提交的数据
 33             GetPage(strURL, postData);
 34             //定义返回json数据 解析json数据并显示信息到窗体控件值上
 35             string jsoncontent = GetPage(strURL, postData);
 36             //string html_custerm = HttpHelper.GetResponse(jsoncontent, "get", string.Empty);
 37             //string str_custerm = html_custerm.Replace("cnp([", "").Replace("]);", "");
 38             //Custerm custerm = new Custerm();
 39            // custerm = JsonConvert.DeserializeObject(jsoncontent, typeof(Custerm)) as Custerm;
 40            // this.txtCard.Text = custerm.CardNO;
 41             List<Custerm> CustermList = JsonConvert.DeserializeObject<List<Custerm>>(jsoncontent);
 42 
 43             foreach (Custerm custerm in CustermList)
 44             {
 45                 //Console.WriteLine("UserName:" + custerm.CustermName + "UserID:" + custerm.CustermID + "CardNO:" + custerm.CardNO + "ClassName:" + custerm.ClassName + "HomeAddress:" + custerm.HomeAddress + "Professional:" + custerm.Professional + "SchoolName:" + custerm.SchoolName + "Sex:" + custerm.Sex + "SIDCard:" + custerm.SIDCard);
 46                 this.txtCard.Text = custerm.CardNO;
 47                 this.txtName.Text = custerm.CustermName;
 48                 this.txtSex.Text = custerm.Sex;
 49                 this.txtClass.Text = custerm.ClassName;
 50                 this.txtPosition.Text = custerm.Professional;
 51                 this.txtIDCard.Text = custerm.SIDCard;
 52                 this.txtSchool.Text = custerm.SchoolName;
 53             }  
 54             
 55         }
 56 
 57         /// <summary>  
 58         /// Post数据到web服务端  
 59         /// </summary>  
 60         /// <param name="strURL">网址</param>  
 61         /// <param name="postData">参数</param>  
 62         /// <returns></returns>  
 63         public string GetPage(string strURL, string postData)
 64         {          
 65             Stream outstream = null;
 66             Stream instream = null;
 67             StreamReader sr = null;
 68             HttpWebResponse response = null;
 69             HttpWebRequest request = null;
 70             Encoding encoding = System.Text.Encoding.GetEncoding("UTF-8");
 71             //postData = postData+"\"}";
 72             byte[] data = encoding.GetBytes(postData);
 73             // 准备请求...  
 74             try
 75             {
 76                 // 设置参数  
 77                 request = WebRequest.Create(strURL) as HttpWebRequest;
 78                 CookieContainer cookieContainer = new CookieContainer();
 79                 request.CookieContainer = cookieContainer;
 80                 request.AllowAutoRedirect = true;
 81                 //Post请求方式
 82                 request.Method = "POST";
 83                 request.KeepAlive = false;
 84                 //内容类型
 85                 request.ContentType = "application/x-www-form-urlencoded";
 86                 request.ContentLength = data.Length;
 87                 outstream = request.GetRequestStream();
 88                 //send the data
 89                 outstream.Write(data, 0, data.Length);
 90                 outstream.Close();
 91                 //发送请求并获取相应回应数据  
 92                 response = request.GetResponse() as HttpWebResponse;
 93                 //直到request.GetResponse()程序才开始向目标网页发送Post请求  
 94                 instream = response.GetResponseStream();//获得请求流
 95                 sr = new StreamReader(instream, encoding);
 96                 //返回结果网页(html)代码  
 97                 string content = sr.ReadToEnd();
 98                 Console.WriteLine(content); 
 99                 string err = string.Empty;
100                 return content;
101 
102             }
103             catch (Exception ex)
104             {
105                 string err = ex.Message;
106                 return string.Empty;
107             }
108         }       
109         
110         /// <summary>
111         /// 人员信息类
112         /// </summary>       
113       public  class Custerm
114         {
115             public string CustermID { get; set; }
116             public string CustermName { get; set; }
117             public string CardNO { get; set; }
118             public string ClassName { get; set; }
119             public string Sex { get; set; }
120             public string SIDCard { get; set; }
121             public string SchoolName { get; set; }
122             public string HomeAddress { get; set; }
123             public string Professional { get; set; }
124 
125             //public Custerm(string CustermID, string CustermName, string CardNO, string ClassName, string Sex, string SIDCard, string SchoolName, string HomeAddress, string Professional)
126             //{
127             //    this.CustermID = CustermID;
128             //    this.CustermName = CustermName;
129             //    this.CardNO = CardNO;
130             //    this.ClassName = ClassName;
131             //    this.Sex = Sex;
132             //    this.SIDCard = SIDCard;
133             //    this.SchoolName = SchoolName;
134             //    this.HomeAddress = HomeAddress;
135             //    this.Professional = Professional;
136             //}
137 
138         }
139      
140     }
141 }
View Code

三:引用类库 Newtonsoft.Json.dll

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Net;
  6 using System.IO;
  7 using System.Text.RegularExpressions;
  8 
  9 namespace WriteCard
 10 {
 11     
 12 public class HttpHelper
 13     {
 14         public static CookieContainer CookieContainers = new CookieContainer();
 15 
 16         public static string FireFoxAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23";
 17         public static string IE7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; .NET4.0E)";
 18 
 19         /// <summary>
 20         /// 
 21         /// </summary>
 22         /// <param name="url"></param>
 23         /// <param name="method">"POST" or "GET"</param>
 24         /// <param name="data">when the method is "POST", the data will send to web server, if the method is "GET", the data should be string.empty</param>
 25         /// <returns></returns>
 26         public static string GetResponse(string url, string method, string data)
 27         {
 28             try
 29             {
 30                 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
 31                 req.KeepAlive = true;
 32                 req.Method = method.ToUpper();
 33                 req.AllowAutoRedirect = true;
 34                 req.CookieContainer = CookieContainers;
 35                 req.ContentType = "application/x-www-form-urlencoded";
 36 
 37                 req.UserAgent = IE7;
 38                 req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
 39                 req.Timeout = 50000;
 40 
 41                 if (method.ToUpper() == "POST" && data != null)
 42                 {
 43                     ASCIIEncoding encoding = new ASCIIEncoding();
 44                     byte[] postBytes = encoding.GetBytes(data); ;
 45                     req.ContentLength = postBytes.Length;
 46                     Stream st = req.GetRequestStream();
 47                     st.Write(postBytes, 0, postBytes.Length);
 48                     st.Close();
 49                 }
 50 
 51                 System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
 52                 {
 53                     return true;
 54                 };
 55 
 56                 //Encoding myEncoding = Encoding.GetEncoding("UTF-8");
 57                 Encoding myEncoding = Encoding.GetEncoding("gb2312");
 58 
 59                 HttpWebResponse res = (HttpWebResponse)req.GetResponse();
 60                 Stream resst = res.GetResponseStream();
 61                 StreamReader sr = new StreamReader(resst, myEncoding);
 62                 string str = sr.ReadToEnd();
 63 
 64                 return str;
 65             }
 66             catch (Exception)
 67             {
 68                 return string.Empty;
 69             }
 70         }
 71 
 72         public static Stream GetResponseImage(string url)
 73         {
 74             Stream resst = null;
 75             try
 76             {
 77                 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
 78                 req.KeepAlive = true;
 79                 req.Method = "GET";
 80                 req.AllowAutoRedirect = true;
 81                 req.CookieContainer = CookieContainers;
 82                 req.ContentType = "application/x-www-form-urlencoded";
 83 
 84                 req.UserAgent = IE7;
 85                 req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
 86                 req.Timeout = 50000;
 87 
 88                 System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
 89                 {
 90                     return true;
 91                 };
 92 
 93                 Encoding myEncoding = Encoding.GetEncoding("UTF-8");
 94 
 95                 HttpWebResponse res = (HttpWebResponse)req.GetResponse();
 96                 resst = res.GetResponseStream();
 97 
 98                 return resst;
 99             }
100             catch
101             {
102                 return null;
103             }
104         }
105 
106         public static string GetRegexString(string pattern, string source)
107         {
108             Regex r = new Regex(pattern);
109             MatchCollection mc = r.Matches(source);
110             return mc[0].Groups[1].Value;
111         }
112 
113         public static string[] GetRegexStrings(string pattern, string source)
114         {
115             Regex r = new Regex(pattern);
116             MatchCollection mcs = r.Matches(source);
117 
118             string[] ret = new string[mcs.Count];
119 
120             for (int i = 0; i < mcs.Count; i++)
121                 ret[i] = mcs[i].Groups[1].Value;
122 
123             return ret;
124         }
125     }
126 }
View Code

 

posted @ 2014-12-30 11:05  博斯芮网络科技  阅读(374)  评论(0编辑  收藏  举报