• 模拟登录实现服务器功能


         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;
            }
    

      

    再三须慎意,第一莫欺心
  • 相关阅读:
    svn Mac
    webpack实用配置
    vuex状态管理-数据改变不刷新
    element-vue-koa2-mysql实现文件上传
    Promise的理解
    mysql Mac篇
    python 24 days
    python 7 days
    python 27 days
    python 26 days
  • 原文地址:https://www.cnblogs.com/otsf/p/12955007.html
Copyright © 2020-2023  润新知