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="

\r\n";
WapContent+="

1<wml>\r\n ";   
2WapContent+="\r\n";   
3WapContent+="<card id='\"hello\"'>\r\n";   
4WapContent+=" <p>hello老婆 </p>\r\n";   
5WapContent+="</card>\r\n";   
6WapContent+="\r\n";   
7WapContent+="</wml>

\r\n";
WapContent+="\r\n";
Response.Write(WapContent);
用手机试一下,OK
现在写小说的WAP程序。
先从网上下一篇小说,存在目录下,1.txt
不过小说太大了,必须先要有一个目录,按2K分页吧,好家伙,有200页,算了,来一个直接选页数的GO吧:
WapContent+="

1<input emptyok='\"true\"/' format='\"*N\"' maxlength='\"10\"' name='\"PAGENUM\"' size='\"3\"' type='\"text\"'/>

";
WapContent+="

1<anchor title='\"login\"'>\n";   
2WapContent+="<go href='\"wap.aspx\"' method='\"get\"'>\n";   
3WapContent+="<postfield name='\"page\"' value='\"$PAGENUM\"/'>\n";   
4WapContent+="</postfield></go>就看这页!
5\n";   
6WapContent+="</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="

\r\n";
// WapContent="

\r\n";
WapContent+="

 1<wml>\r\n ";   
 2  
 3WapContent+="\r\n";   
 4System.IO.FileInfo oFM=new System.IO.FileInfo(Request.PhysicalPath);   
 5System.IO.StreamReader oReaderD=new System.IO.StreamReader(oFM.DirectoryName +"\\\"+ "1.txt",System.Text.Encoding.Default);   
 6//每次读3000字   
 7  
 8mC=oReaderD.ReadToEnd() ;   
 9oReaderD.Close();   
10WapContent+="<card id='\"lists"+n.ToString()+"\"'>\r\n";   
11  
12int k=mC.Length/3000;   
13WapContent+=" <p>目录</p>\r\n";   
14WapContent+=" <p>共:"+k.ToString()+"页</p>\r\n";   
15  
16WapContent+=" <input emptyok='\"true\"/' format='\"*N\"' maxlength='\"10\"' name='\"SID\"' size='\"3\"' type='\"text\"'/>";   
17WapContent+="<anchor title='\"login\"'>\n";   
18WapContent+="<go href='\"wap.aspx\"' method='\"get\"'>\n";   
19WapContent+="<postfield name='\"page\"' value='\"$SID\"/'>\n";   
20WapContent+="</postfield></go>就看这页!
21\n";   
22WapContent+="</anchor>\n"; 
23
24WapContent+="<onevent type='\"onenterbackward\"'>\r\n";   
25WapContent+=" <prev></prev>\r\n";   
26WapContent+=" </onevent>\r\n";   
27  
28  
29  
30WapContent+="</card>\r\n";   
31  
32  
33  
34WapContent+="\r\n"; 
35
36  
37  
38WapContent+="</wml>

\r\n";
WapContent+="\r\n";
Response.Write(WapContent);
return;

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

WapContent="

\r\n";
WapContent+="

 1<wml>\r\n ";   
 2  
 3WapContent+="\r\n";   
 4System.IO.FileInfo oF=new System.IO.FileInfo(Request.PhysicalPath);   
 5System.IO.StreamReader oReader=new System.IO.StreamReader(oF.DirectoryName +"\\\"+ "1.txt",System.Text.Encoding.Default);   
 6//每次讯读3000字   
 7  
 8mC=oReader.ReadToEnd() ;   
 9oReader.Close();   
10if(mC.Length&gt;4000)   
11{   
12mC=mC.Substring((n)*3000,3000);   
13mC=mC.Replace("\r\n","<br/>");   
14ArtMore=true;   
15}   
16  
17//每屏3000字   
18  
19  
20WapContent+="<card id='\"lists"+n.ToString()+"\"'>\r\n";   
21  
22WapContent+=" <do label='\""+(n-1).ToString()+"\"' type='\"accept\"'>\r\n";   
23WapContent+=" <go href='\"wap.aspx?Page="+(n-1).ToString()+"\"/'>\r\n";   
24WapContent+=" </go></do>\r\n";   
25WapContent+="<onevent type='\"onenterbackward\"'>\r\n";   
26WapContent+=" <prev></prev>\r\n";   
27WapContent+=" </onevent>\r\n";   
28  
29WapContent+=" <p>\r\n";   
30WapContent+=n.ToString()+"P";   
31  
32WapContent+=mC;   
33  
34  
35WapContent+=" </p>\r\n";   
36  
37WapContent+=" <do label='\"下一页\"' type='\"accept\"'>\r\n";   
38WapContent+=" <go href='\"wap.aspx?Page="+(n+1).ToString()+"\"/'>\r\n";   
39WapContent+=" </go></do>\n";   
40//选取页面   
41WapContent+=" <input emptyok='\"true\"/' format='\"*N\"' maxlength='\"10\"' name='\"SID\"' size='\"3\"' type='\"text\"'/>";   
42WapContent+="<anchor title='\"login\"'>\n";   
43WapContent+="<go href='\"wap.aspx\"' method='\"get\"'>\n";   
44WapContent+="<postfield name='\"page\"' value='\"$SID\"/'>\n";   
45WapContent+="</postfield></go>就看这页!
46\n";   
47WapContent+="</anchor>\n";   
48WapContent+="</card>\r\n";   
49  
50  
51  
52WapContent+="\r\n"; 
53
54  
55  
56WapContent+="</wml>

\r\n";
WapContent+="\r\n";
Response.Write(WapContent);

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus