博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WinCE winform 开发注意事项
阅读量:6278 次
发布时间:2019-06-22

本文共 2927 字,大约阅读时间需要 9 分钟。

WinCE winform 开发注意事项

环境
client:Microsoft wince5/wince6 .net compact framework3.5
server:iis7.5 Microsoft MVC3
编写目的
本篇主要描述wince下的.net winform开发,以及开发注意事项。
注意事项
1.HttpWebRequest
在.net compact framework 下不支持 CookieContainer,解决方案通过http header增加cookie来解决 登录session。示例代码如下:
var postData = Encoding.UTF8.GetBytes(postString);
// 设置提交的相关参数
_request = WebRequest.Create(uri) as HttpWebRequest;
_request.Method = "POST";

_request.AllowWriteStreamBuffering = false;

_request.KeepAlive = true;

_request.ContentType = "application/x-www-form-urlencoded";
_request.ContentLength = postData.Length;
if (!string.IsNullOrEmpty(_cookie))// 登录后每次请求服务端在http header 上带入 session.
_request.Headers.Add("Cookie", _cookie);

// 提交请求数据

_outputStream = _request.GetRequestStream();
_outputStream.Write(postData, 0, postData.Length);
_outputStream.Close();

// 接收返回的页面

_response = _request.GetResponse() as HttpWebResponse;
_responseStream = _response.GetResponseStream();
_reader = new System.IO.StreamReader(_responseStream, Encoding.UTF8);
_srcString = _reader.ReadToEnd();
string statusCode = _response.StatusCode.ToString();

string tmpCookie = _response.Headers.Get("Set-Cookie");

string applicationName = AppConfig.GetConfigValue("ApplicationName");
if (tmpCookie.Contains(applicationName))//得到form登录后的 set-cookie
_cookie = _response.Headers.Get("Set-Cookie");
_reader.Close();
_response.Close();
return _srcString;
2. 对https请求
https通过ssl一个加密压缩的安全协议。在.net compact framwork 环境下我们默认通过HttpWebRequest是无法获正常获取
https请求的,程序会报Could not establish secure channel for SSL/TLS。.netframework 解决方案不适用于.net compact framework。示例代码如下:
定义相关类:
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{

public TrustAllCertificatePolicy()

{ }

public bool CheckValidationResult(ServicePoint sp,

X509Certificate cert, WebRequest req, int problem)

{

return true;

}

}
调用:
public static string HttpPostMethod(string uri, string postString)
{
//信任https安全证书
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

var postData = Encoding.UTF8.GetBytes(postString);

_request = WebRequest.Create(uri) as HttpWebRequest;
_request.Method = "POST";
_request.AllowWriteStreamBuffering = false;
3.HttpWebRequest 异步请求
在.net compact framework 下我们可以通过HttpWebRequest进行异步请求,比如我们在下载服务器上大文件有一定的帮助。
示例代码如下:
private HttpWebRequest m_req;
m_req = (HttpWebRequest)HttpWebRequest.Create(string.Format(@"{0}/{1}", domainApp, m_UpgraderFilePath));
//ResponseReceived 为异步委托方法。
m_req.BeginGetResponse(new AsyncCallback(ResponseReceived), null);
4. 其他

在.net framework copmact 下读取文本文件、读取.config文件、读取ini文件,均需要自己手动实现。具体代码略。

注:

上文中未提及ASP.NET MVC3内容,在本例中MVC3只是作为后台的服务,每个服务端JsonResult方法只是做为http接口。

使用 http 协议而不用 soap(webservice/ wcf) 协议,就微软的技术来讲是个未来的趋势。由于项目开发周期的原因,未将Web API 引入。
在由wince client端使用 .net 大名鼎鼎的开源类库 .Newtonsoft.Json.Compact 将json数据转成相应C#实体。

posted on
2012-05-31 09:44 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/ryanding/archive/2012/05/31/2527861.html

你可能感兴趣的文章
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
《Exchange Server 2010 SP1/SP2管理实践》——2.4 部署外部网络环境
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
《计算广告:互联网商业变现的市场与技术》一第一部分 在线广告市场与背景...
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
《Arduino家居安全系统构建实战》——1.5 介绍用于机器学习的F
查看>>