模拟登录实现服务器功能

     private static CookieContainer m_Cookie = new CookieContainer(); //记录浏览器session
        /// <summary>
        /// 删除服务器文件
        /// </summary>
        /// <param name="MD5">上传文件时返回的MD5</param>
        public void deleServerFile(string MD5, string firmId)
        {
            //由于文件重复上传只会生成一份根文件,做处理如果存在在用文件人员大于1就不删除服务器数据
            var modelList = _kfile.GetListByMD5(MD5, firmId);
            if (modelList.Count <= 1)//服务器文件只有一分的话就删除掉
            {
                //模拟登录缓存Cookie
                m_Cookie = new CookieContainer();
                string loginUrl = Tools.CommonBaseData.KnowLedgebaseLogin;
                var arrLogin = loginUrl.Split(',');
                string strUrl = arrLogin[0];
                string json = "";
                json = SendPostHttpRequest(strUrl, "application/x-www-form-urlencoded", "" + arrLogin[1] + "&" + arrLogin[2] + "");
                string s1 = json;
                //删除服务器文件
                strUrl = Tools.CommonBaseData.KnowLedgebaseDeleteFile;
                json = SendPostHttpRequest(strUrl, "application/x-www-form-urlencoded", "md5=" + MD5 + "");//&jsession=cfcd208495d565ef66e7dff9f98764da
                string s2 = json;
            }
        }
        /// <summary>
        /// 发送请求
        /// </summary>
        /// <param name="url">Url地址</param>
        /// <param name="method">方法(post或get)</param>
        /// <param name="method">数据类型</param>
        /// <param name="requestData">数据</param>
        public string SendPostHttpRequest(string url, string contentType, string requestData)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            if (m_Cookie != null)
            {
                request.CookieContainer = m_Cookie;
            }


            request.Method = "POST";
            byte[] postBytes = null;
            request.ContentType = contentType;
            postBytes = Encoding.UTF8.GetBytes(requestData);
            request.ContentLength = postBytes.Length;
            using (Stream outstream = request.GetRequestStream())
            {
                outstream.Write(postBytes, 0, postBytes.Length);
            }
            string result = string.Empty;
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                if (m_Cookie == null)
                {
                    response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
                    CookieCollection cook;
                    cook = response.Cookies;
                    m_Cookie.Add(cook);
                }


                if (response != null)
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                        {
                            result = reader.ReadToEnd();
                        }
                    }
                }
            }
            return result;
        }

  

猜你喜欢

转载自www.cnblogs.com/otsf/p/12955007.html