302重定向,MVC中的Get,Post請求。


1.在訪問頁遇到重定向,Get,Post跳轉處理,在跳轉后的頁面獲取訪問端的IP,他們的IP是否發生變化。。。

2.重定向處理后獲取的IP還是訪問端IP,而用Get,Post請求處理后,獲取的訪問端IP則是處理頁的IP。

3.獲取客戶端IP的代碼

   public string GetClientIP()
        {
            HttpContext current = HttpContext.Current;
            string userHostAddress = string.Empty;
            if (current != null)
            {
                if ((current.Session != null) && (current.Session["cnki_sys_user_remote_addr"] != null))
                {
                    userHostAddress = current.Session["cnki_sys_user_remote_addr"].ToString();
                    if (!string.IsNullOrEmpty(userHostAddress))
                    {
                        return userHostAddress;
                    }
                }
                userHostAddress = "127.0.0.1";
                userHostAddress = current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (string.IsNullOrEmpty(userHostAddress))
                {
                    userHostAddress = current.Request.ServerVariables["REMOTE_ADDR"];
                    if (string.IsNullOrEmpty(userHostAddress))
                    {
                        userHostAddress = current.Request.UserHostAddress;
                    }
                }
                else
                {
                    string[] strArray = userHostAddress.Split(new char[] { ',' });
                    if ((strArray.Length > 1) && !string.IsNullOrEmpty(strArray[strArray.Length - 1]))
                    {
                        userHostAddress = strArray[strArray.Length - 1];
                    }
                }
                if (current.Session != null)
                {
                    current.Session["cnki_sys_user_remote_addr"] = userHostAddress;
                }
            }
            return userHostAddress;
        }

4.向mvcapi中發出的Post和Get請求,以及返回信息的接收和處理代碼。

 public class ECPManage
    {
        public Result GetResultFromConfig(string config, params string[] para)//config是mvcapi的處理路徑,para是參數。
        {
            string getUidUrl = string.Format(ConfigurationManager.AppSettings[config], para);
            string retJSON = SendGet(getUidUrl).TrimStart("?(".ToCharArray()).TrimEnd(')');
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(retJSON)))
            {
                System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Result));
                Result t = (Result)serializer.ReadObject(ms);
                return t;
            }
        }
        /// <summary>
        /// 發送post請求,返回信息
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="data"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public string SendPost(string uri, string data, string encoding = "utf8")
        {
            using (WebClient wCient = new WebClient())
            {
                if ("utf8" == encoding)
                {
                    wCient.Encoding = Encoding.UTF8;
                }
                else
                {
                    wCient.Encoding = Encoding.Default;
                }
                return wCient.UploadString(uri, data);
            }
        }
        /// <summary>
        /// 發送get請求,返回信息
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public string SendGet(string uri, string encoding = "utf8")
        {
            using (WebClient wCient = new WebClient())
            {
                if ("utf8" == encoding)
                {
                    wCient.Encoding = Encoding.UTF8;
                }
                else
                {
                    wCient.Encoding = Encoding.Default;
                }
                return wCient.DownloadString(uri);
            }
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM