C#开发WAP程序

程序

平时下班等女朋友总是要等很长时间,想看书又没有带,只有玩手机游戏;GPRS上网,好象很多内容都是要付费的,就只有下载铃声,什么图片的,没劲!最好能用手机看看小说,网络上好象没有免费的WAP小说,办公室的小妹妹也想用手机看小说,看来只有自己做一个了。
都说JAVA是开发WAP的利器,不过WAP需要这个“码”转到那个“码”,真是麻烦,算了,看一下能不能用C#做一个WAP小站。
想来也很简单的,WAP就是用UTF8编码嘛,好象还有什么WML之类的,WML在网上查查资料,就和XML差不多,平时用XML也蛮多的,WML也就简单了,C#直接可以设RESPONSE的编码的,看来有戏了,先写一个“Hello 老婆“吧,
//设置ContentType类型
Response.ContentType="text/vnd.wap.wml";
//设置编码
Response.ContentEncoding=System.Text.Encoding.UTF8;
//以下是根据WML协议写的内容部份
WapContent="<?xml version=\"1.0\" encoding=\"UTF8\"?>\r\n";
WapContent+="<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\"><wml>\r\n";
WapContent+="\r\n";
WapContent+="<card id=\"hello\">\r\n";
WapContent+=" <p>hello老婆 </p>\r\n";
WapContent+="</card>\r\n";
WapContent+="\r\n";
WapContent+="</wml>\r\n";
WapContent+="\r\n";
Response.Write(WapContent);
用手机试一下,OK
现在写小说的WAP程序。
先从网上下一篇小说,存在目录下,1.txt
不过小说太大了,必须先要有一个目录,按2K分页吧,好家伙,有200页,算了,来一个直接选页数的GO吧:
WapContent+=" <input name=\"PAGENUM\" size=\"3\" maxlength=\"10\" type=\"text\" format=\"*N\" emptyok=\"true\"/>";
WapContent+="<anchor title=\"login\">\n";
WapContent+="<go href=\"wap.aspx\" method=\"get\">\n";
WapContent+="<postfield name=\"page\" value=\"$PAGENUM\"/>\n";
WapContent+="</go>就看这页!<br/>\n";
WapContent+="</anchor>\n";
所有的代码:
private void Page_Load(object sender, System.EventArgs e)
{
string WapContent;
string mC;
//在调试时用GB2312模拟器
Response.ContentType="text/vnd.wap.wml";
// Response.ContentType="text/vnd.wap.wml;charset=UTF-8";
Response.ContentEncoding=System.Text.Encoding.UTF8;// Unicode ;// "UTF8";
// Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
int n=0;
if(Request["Page"]==null)
{
//显示目录
WapContent="<?xml version=\"1.0\" encoding=\"UTF8\"?>\r\n";
// WapContent="<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n";
WapContent+="<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\"><wml>\r\n";

WapContent+="\r\n";
System.IO.FileInfo oFM=new System.IO.FileInfo(Request.PhysicalPath);
System.IO.StreamReader oReaderD=new System.IO.StreamReader(oFM.DirectoryName +"\\"+ "1.txt",System.Text.Encoding.Default);
//每次读3000字

mC=oReaderD.ReadToEnd() ;
oReaderD.Close();
WapContent+="<card id=\"lists"+n.ToString()+"\">\r\n";

int k=mC.Length/3000;
WapContent+=" <p>目录</p>\r\n";
WapContent+=" <p>共:"+k.ToString()+"页</p>\r\n";

WapContent+=" <input name=\"SID\" size=\"3\" maxlength=\"10\" type=\"text\" format=\"*N\" emptyok=\"true\"/>";
WapContent+="<anchor title=\"login\">\n";
WapContent+="<go href=\"wap.aspx\" method=\"get\">\n";
WapContent+="<postfield name=\"page\" value=\"$SID\"/>\n";
WapContent+="</go>就看这页!<br/>\n";
WapContent+="</anchor>\n";

WapContent+="<onevent type=\"onenterbackward\">\r\n";
WapContent+=" <prev/>\r\n";
WapContent+=" </onevent>\r\n";

WapContent+="</card>\r\n";

WapContent+="\r\n";

WapContent+="</wml>\r\n";
WapContent+="\r\n";
Response.Write(WapContent);
return;

}
else
n=System.Convert.ToInt32(Request["Page"]);

WapContent="<?xml version=\"1.0\"?>\r\n";
WapContent+="<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\"><wml>\r\n";

WapContent+="\r\n";
System.IO.FileInfo oF=new System.IO.FileInfo(Request.PhysicalPath);
System.IO.StreamReader oReader=new System.IO.StreamReader(oF.DirectoryName +"\\"+ "1.txt",System.Text.Encoding.Default);
//每次讯读3000字

mC=oReader.ReadToEnd() ;
oReader.Close();
if(mC.Length>4000)
{
mC=mC.Substring((n)*3000,3000);
mC=mC.Replace("\r\n","<BR/>");
ArtMore=true;
}

//每屏3000字

WapContent+="<card id=\"lists"+n.ToString()+"\">\r\n";

WapContent+=" <do type=\"accept\" label=\""+(n-1).ToString()+"\">\r\n";
WapContent+=" <go href=\"wap.aspx?Page="+(n-1).ToString()+"\"/>\r\n";
WapContent+=" </do>\r\n";
WapContent+="<onevent type=\"onenterbackward\">\r\n";
WapContent+=" <prev/>\r\n";
WapContent+=" </onevent>\r\n";

WapContent+=" <p>\r\n";
WapContent+=n.ToString()+"P";

WapContent+=mC;

WapContent+=" </p>\r\n";

WapContent+=" <do type=\"accept\" label=\"下一页\">\r\n";
WapContent+=" <go href=\"wap.aspx?Page="+(n+1).ToString()+"\"/>\r\n";
WapContent+=" </do>\n";
//选取页面
WapContent+=" <input name=\"SID\" size=\"3\" maxlength=\"10\" type=\"text\" format=\"*N\" emptyok=\"true\"/>";
WapContent+="<anchor title=\"login\">\n";
WapContent+="<go href=\"wap.aspx\" method=\"get\">\n";
WapContent+="<postfield name=\"page\" value=\"$SID\"/>\n";
WapContent+="</go>就看这页!<br/>\n";
WapContent+="</anchor>\n";
WapContent+="</card>\r\n";

WapContent+="\r\n";

WapContent+="</wml>\r\n";
WapContent+="\r\n";
Response.Write(WapContent);

}
拿起手机,www.tjkx.com/wap.aspx,试一下,爽!!!
用手机调试太麻烦,下载一个WinWap Pro3.1在这里面调试。
工具齐备了,看来C#真好,写个小程序就这样简单

时间: 2024-11-02 05:17:34

C#开发WAP程序的相关文章

asp.net开发wap程序必备:识别来访手机品牌型号

我们在开发wap应用程序需要有识别来访手机品牌型号的功能,这样才可以更好的为用户提供更好的个性化服务,比如图片类型.屏幕尺寸.铃声类型等.      http协议中,User-Agent这个标头指示的浏览器信息,文章最后附加了常见的手机User-Agent.      每个厂家,甚至一个厂家多个品牌的User-Agent都没有一个统一命名标准,所以处理起来相当麻烦---不停的if.比如判断某个手机的品牌     If Request.UserAgent.ToUpper.StartsWith("M

应用Java技术开发WAP应用程序

程序 我们还是采用Tomcat作为web服务器,如果你对如何使用tomcat还不熟悉请参考相关资料.通常我们开发WAP应用程序的时候都是手写wml脚本,其实我们可以借助java的Servlet/jsp技术开发WAP应用程序.通常我都是使用Lomboz插件在eclipse的环境下写servlet/jsp文件的.先看下面的waptest.jsp文件和WapServlet.java文件 <?xml version="1.0"?><!DOCTYPE wml PUBLIC &q

asp.net web 应用程序 开发的项目中如何开发wap网页啊!在线等。。。。。

问题描述 "asp.netweb应用程序"开发的项目中如何开发wap网页啊!只有在用"asp.net网站"开发的项目中才看到有:添加新项>>移动wap窗体 解决方案 解决方案二:移动wap窗体又不好用....解决方案三:我不管他好不好用,可以就行!!解决方案四:1.1的话直接写WML就成了2.0的话差不多写成HTML不要用带JS的控件就成了~不懂非要用微软的那个什么移动窗体做什么...VS2008都放弃了的东西...解决方案五:就像做web网站一样做移动

ASP开发WAP简易邮件系统实例

下一篇:ASP开发WAP简易邮件系统实例(续) 随着手机用户的不断增加,WAP站点如雨后春笋迅速的滋长开来,手机邮箱也不断的出现在人的眼前,笔者也曾经开发了一套手机邮箱的系统,但由于时间仓促再加上后来一直忙于工作事情,系统功能也就再未加强,今日有幸借助于IT168原创网公开出来,与大家共同分享,希望大家可以借题发挥,加强系统功能,能够更好的应用于实际. 测试软件:Opera M3gate 测试机型:Eg730+ Nokia 6681 Moto V3i 邮件组件:W3 Jmail 4.4 一.WM

开发WAP站点之---使用PC电脑浏览器访问WAP手机站点

  3G时代来了,公司最近要求我们也要做WAP版本的站点系统了,我们平时做的WEB系统大部分都是用的HTML,而手机使用的是WML语言,虽然WML有些很类似HTML,但是还是有很多细节不同的.   开发WAP站点系统的时候,在进行测试预览的时候非常不方便,因为纯WAP站点,IE.火狐.谷歌等浏览器是不支持的,所以大门户的WAP网站都会自动判断,如果使用PC浏览器访问,会自动跳到一个页面,只有使用手机浏览器访问,才会显示手机网页页面,主要是考虑到兼容性,像腾讯的就是如此,如果你用IE访问http:

Eclipse开发Android程序如何在手机上运行

1.设置android手机为USB调试模式 打开手机里面的开发者选项->USB调试 2.通过eclipse上真机测试 没用真机时,用eclipse开发android程序都是点run,然后选择模拟器的.安装好手机的usb驱动后,还是点run,程序就会神奇的在真机上运行了,效果与在模拟器中的一样,而且速度比用模拟器块很多. 如果还是在模拟器上运行,右键->run as->run configurations->target 选项1:总是提示选择设备 选项2:在所有的设备上登陆 选项3:

从根本上改变我们开发Java程序的方式:Lambda

当今世界主流编程语言无不吸纳强大的闭包概念,但有个例外,它就是Java.数年来,Java语言中增加闭包特征的工作看起来毫无进展. 早在15年之前,Scala语言和TypeSafe框架的作者Martin Odersky和Phillip Wadler发布了实验性的"Pizza"项目,由此,人们开始试图将闭包纳入编程语言的基本特征之一.尽管这看起来有点过于复杂,Java社区大概在2008年就有了接纳闭包概念的想法.但由于Oracle对Sun微系统公司的匆忙收购,Java被冷落,Java语言新

开发Wap中的随笔

Asp开发 联通CDMA 以下是在开发wap中的随笔,其中一些对于"老鸟"来说,谈不上什么,希望对初学者有所帮助,大家有什么小技巧,欢迎顶上来.共同学习.共同进步 ^-^1.iis配置Wap环境在作为wap站点的属性-->Http头-->MIME映射中添加新的文件类型,具体如下:关联文件名 内容类型wml text/vnd.wap.wmlwmlc application/vnd.wap.wamlcwmls text/vnd.wap.wmlscriptwmlsc applic

使用JBuilder开发J2ME程序

程序 使用JBuilder开发J2ME程序 作者:陈跃峰 出自:http://blog.csdn.net/mailbomb          现在实际应用大部分都是使用JBuilder在进行开发,所以简单介绍一下如何使用.        JBuiler 9(包括JB9)以上都包含了MobileSet和WTK,可以直接用来开发.        使用JB9以上开发J2ME应用时,和使用JB进行一般的开发类似,步骤如下: 1.  新建project,根据需要选择合适的project类型.以下以新建空项