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, , 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;
}