今天是在吾索实习的第13天。今天没有做过多的代码设计,只进行了一些代码的分析与进一步优化。其中,发现创建自定义菜单的关键代码书写可分为两部分:
- JSON格式的字符串在.net中的语法书写:
1 string ResponseJsonStr = @"{ 2 ""button"":[ 3 { 4 ""type"":""click"", 5 ""name"":""技术交流"", 6 ""key"":""V1001_TODAY_MUSIC"" 7 }, 8 { 9 ""type"":""click"", 10 ""name"":""定位打卡"", 11 ""key"":""V1001_TODAY_SINGER"" 12 }, 13 { 14 ""name"":""..."", 15 ""sub_button"":[ 16 { 17 ""type"":""view"", 18 ""name"":""搜索"", 19 ""url"":""http://www.soso.com/"" 20 }, 21 { 22 ""type"":""view"", 23 ""name"":""视频"", 24 ""url"":""http://v.qq.com/"" 25 }, 26 { 27 ""type"":""click"", 28 ""name"":""赞一下我们"", 29 ""key"":""V1001_GOOD"" 30 }] 31 }] 32 }";
-
把URL与JSON数据包整合在一起,并以字符串形式返回(其中posturl存放URL,postData存放JSON字符串)
1 Stream outstream = null; 2 Stream instream = null; 3 StreamReader sr = null; 4 HttpWebResponse response = null; 5 HttpWebRequest request = null; 6 Encoding encoding = Encoding.UTF8; 7 byte[] data = encoding.GetBytes(postData); //字符串编码为字节序列 8 // 准备请求... 9 try 10 { 11 // 设置参数 12 request = WebRequest.Create(posturl) as HttpWebRequest; 13 CookieContainer cookieContainer = new CookieContainer(); 14 request.CookieContainer = cookieContainer; 15 request.AllowAutoRedirect = true; 16 request.Method = "POST"; 17 request.ContentType = "application/x-www-form-urlencoded"; 18 request.ContentLength = data.Length; 19 outstream = request.GetRequestStream(); 20 outstream.Write(data, 0, data.Length); //写入参数 21 outstream.Close(); 22 //发送请求并获取相应回应数据 23 response = request.GetResponse() as HttpWebResponse; 24 //直到request.GetResponse()程序才开始向目标网页发送Post请求 25 instream = response.GetResponseStream(); 26 sr = new StreamReader(instream, encoding); 27 //返回结果网页(html)代码 28 string content = sr.ReadToEnd(); 29 string err = string.Empty; 30 return content; 31 } 32 catch (Exception ex) 33 { 34 35 string err = ex.Message; 36 Response.Write(err); 37 return string.Empty; 38 }
另外,今天我们还开通了SVN托管服务,以达到协同开发及控制源码版本。因为我们实习团队的人员游走于各自不同的地方,所以一台互联网环境的SVN服务器对我们来说是很重要的,所以SVN托管服务对于我们的协同开发是必不可少的。
最后,对于把URL与JSON字符串整合的代码,因我们是在互联网上找的加上对部分类的不熟悉,所以经过我们的分析,只能了解到一个大概,不能明确地说出每一句的作用是什么。希望有经验的朋友们能帮我们解释一下,特别是:outstream.Write(data, 0, data.Length)这句,是写入参数,但是把数据写入到哪里呢,还是把数据存入Write这个参数中呢;另外还有的一些类与函数,如:cookieContainer、GetRequestStream()、GetResponseStream、StreamReader,虽然在网上找过它们的作用,但真正来说还不能清楚地说出它们的真正含义。谢谢!