手机端和服务器端的通信【C#】

 【1】手机端和服务器端简单的数据同步

        /// <summary>
        /// 首先传参数(strImei,strCode)到服务器然后,下载LocalAllCategory.Xml到手机端-------方法
        /// </summary>
        /// <param name="URL">服务器URL地址</param>
        /// <param name="Filename">存放到本地的路径</param>
        /// <param name="strSortName">类别名称</param>
        /// <param name="strRightMark">权限码</param>
        public static void DownAllCategory(string URL, string Filename, string strImei, string strCode)
        {
            //向服务器传参数
            string postData = strImei+"&"+strCode;
            byte[] bytes = Encoding.UTF7.GetBytes(postData);          //注意中文参数需要UTF7编码方式
            HttpWebRequest Myrq = (HttpWebRequest)WebRequest.Create(URL);
            Myrq.Method = "POST";
            Myrq.ContentLength = bytes.Length;
            Myrq.ContentType = "application/x-www-form-urlencoded";
            try
            {
                using (Stream requestStream = Myrq.GetRequestStream())
                {
                    requestStream.Write(bytes, 0, bytes.Length);
                    requestStream.Close();
                }
                //下载文件开始
                HttpWebResponse myrp = (HttpWebResponse)Myrq.GetResponse();
                long totalBytes = myrp.ContentLength;
                //Prog.Maximum = (int)totalBytes;
                Stream st = myrp.GetResponseStream();
                Stream so = new FileStream(Filename, FileMode.Create);
                long totalDownloadedByte = 0;
                byte[] by = new byte[1024];
                int osize = st.Read(by, 0, (int)by.Length);
                while (osize > 0)
                {
                    totalDownloadedByte = osize + totalDownloadedByte;
                    Application.DoEvents();
                    so.Write(by, 0, osize);
                    //Prog.Value = (int)totalDownloadedByte;
                    osize = st.Read(by, 0, (int)by.Length);
                }
                so.Close();
                st.Close();
                //下载文件结束
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk,
                    MessageBoxDefaultButton.Button1);
            }

        }

 

【2】下载文件【Http通信】

  

/// <summary>
        /// 下载方法(带进度条)
        /// </summary>
        /// <param name="URL">服务器URL地址</param>
        /// <param name="Filename">存放到本地的路径</param>
        /// <param name="Prog">进度条</param>
        public string DownCategoryFile(string URL, string Filename, ProgressBar Prog)
        {
            try
            {
                HttpWebRequest Myrq = (HttpWebRequest)HttpWebRequest.Create(URL);

                HttpWebResponse myrp = (HttpWebResponse)Myrq.GetResponse();
                long totalBytes = myrp.ContentLength;
                Prog.Maximum = (int)totalBytes;
                Stream st = myrp.GetResponseStream();
                Stream so = new FileStream(Filename, FileMode.Create);
                long totalDownloadedByte = 0;
                byte[] by = new byte[1024];
                int osize = st.Read(by, 0, (int)by.Length);
                while (osize > 0)
                {
                    totalDownloadedByte = osize + totalDownloadedByte;
                    Application.DoEvents();
                    so.Write(by, 0, osize);
                    Prog.Value = (int)totalDownloadedByte;
                    osize = st.Read(by, 0, (int)by.Length);
                }
                so.Close();
                st.Close();
                return "下载成功";
                //MessageBox.Show("更新完毕!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }
            catch
            {
                return "下载失败";
            }

        }

【3】发送数据到服务器端的方法

        /// <summary>
        /// 发送数据到服务器端的方法
        /// </summary>
        /// <param name="url">服务器路径</param>
        /// <param name="xml">参数的值</param>
        public string  PostXml(string url, string strImei,string strCode)
        {
            string postData =strImei+"&"+strCode;
    
            byte[] bytes = Encoding.UTF8.GetBytes(postData);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentLength = bytes.Length;
            request.ContentType = "application/x-www-form-urlencoded";
           
            try
            {
                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(bytes, 0, bytes.Length);
                    requestStream.Close();

                    //响应请求
                    HttpWebResponse response =(HttpWebResponse)request.GetResponse();
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                    content = reader.ReadLine();
                    return content;
                    //MessageBox.Show(content,"提示:",MessageBoxButtons.OK,MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button1);
                }
            }
            catch
            {
                return "失败";
                //MessageBox.Show(ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button1);
            }
        }

 

posted @ 2009-11-02 10:07  深沉哥  阅读(1360)  评论(0编辑  收藏  举报