导航

WinFrm访问MVC数据

Posted on 2016-05-25 14:06  侯小伟  阅读(153)  评论(0)    收藏  举报

  WinFrm使用HttpWebRequest访问MVC中的Controller,以注册为例,客户端输入注册码后点击注册。

  WinFrm注册代码:代码中使用的是Post提交,UTF8编码方式。

        private bool StartRegister(string reg)
        {
            bool result = false;
            if (Session.Instance.UpdateInfo == null) return false;
            string data = "reg = " + reg + "&machine = 1.2.3.4";
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Session.Instance.UpdateInfo.SignUpUrl
                + "License/SignInRegCode/");
            request.ContentLength = data.Length;
            request.Method = "post";
            request.ContentType = "application/x-www-form-urlencoded";
            try
            {
                Stream answer = request.GetRequestStream();
                answer.Write(bytes, 0, bytes.Length);
                answer.Close();
            }
            catch (Exception ex)
            {
                FrmMessageBox.Show(ex.Message);
                return false;
            }
            
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string str = string.Empty;
            Stream sread = response.GetResponseStream();
            StreamReader answerData = new StreamReader(sread);
            str = answerData.ReadToEnd();

            Session.Instance.DecodeLicense(str);

            if (str != "error")
            {
                result = true;
            }
            return result;
        }

  注意:上面代码data.length改为bytes.length,否则路径中带有中文会报一个长度的错误。

  Web端Controller代码:

        [HttpPost]
        public string SginInRegCode(string reg, string versions)
        {
            string result = "";
            // 1. 判读注册码是否存在。
         
            // 2. 判断注册码使用次数是否可用。

            // 3. 判断注册码版本是否与客户端版本一致。

            // 4. 验证通过,验证码可用。

            return result;
        }