zoukankan      html  css  js  c++  java
  • C# 时间戳、获取客户IP、MD5加密、Get与Post请求等工具方法

    1.DateTime 转为Unix的long的时间戳

    long orderTime = order.AddTime.ToUnixTimeStamp("Milliseconds");
    long payTime = order.StartTime.Value.ToUnixTimeStamp("Milliseconds");

    2.获取客户端IP

    /// <summary>
           /// 获取调用方的IP地址
           /// </summary>
           /// <param name="request"></param>
           /// <returns></returns>
            public static string GetClientIp(HttpRequestMessage request)
            {
                if (request.Properties.ContainsKey("MS_HttpContext"))
                {
                    return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
                }
    
                if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
                {
                    RemoteEndpointMessageProperty prop;
                    prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
                    return prop.Address;
                }
                return null;
            }

    3.获取当前站点域名

       /// <summary>
           /// 获取当前站点域名
           /// </summary>
           /// <returns></returns>
            public static string GetCurrentDomain()
            {
                var url = HttpContext.Current.Request.Url;
                return string.Format("{0}://{1}:{2}", url.Scheme, url.Host, url.Port);
            }

    4.Md5加密

    /// <summary>
            /// MD5加密
            /// </summary>
            /// <param name="strInput">加密前的字符串</param>
            /// <returns></returns>
            public static string MD5(string strInput)
            {
                using (MD5 md5 = new MD5CryptoServiceProvider())
                {
                    byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strInput));
                    string strResult = BitConverter.ToString(bytResult);
                    strResult = strResult.Replace("-", "");
                    return strResult.ToLower();
                }
            }

    5.UrlEncode和UrlDecode

    /// <summary>
            /// UrlEncode
            /// </summary>
            /// <param name="strInput">Encode前的字符串</param>
            /// <returns></returns>
            public static string UrlEncode(string strInput)
            {
               return System.Web.HttpUtility.UrlEncode(strInput, Encoding.UTF8);
            }
    
            /// <summary>
            /// UrlDecode
            /// </summary>
            /// <param name="strInput">Decode前的字符串</param>
            /// <returns></returns>
            public static string UrlDecode(string strInput)
            {
                return System.Web.HttpUtility.UrlDecode(strInput, Encoding.UTF8);
            }

    6.输入字符是否为分隔符

    /// <summary>
            /// 输入字符是否为分隔符
            /// </summary>
            /// <param name="strInput">输入字符</param>
            /// <param name="separator">分隔符</param>
            /// <returns></returns>
            public static bool IsNullOrSeparator(string strInput)
            {
                if (string.IsNullOrEmpty(strInput))
                {
                    return true;
                }
    
                Regex regex = new Regex(@"^[\,,。. ';;()()[]\{}!!@#$%^…&*-_+=|~《》<>??/、::“`]+$");
    
                return regex.IsMatch(strInput); 
            }

    7.async HttpGet:

       public static async Task<string> HttpGet(string Url)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "GET";
                request.ContentType = "text/html;charset=UTF-8";
    
                using (var response =await request.GetResponseAsync())
                {
                    Stream myResponseStream = response.GetResponseStream();
                    StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
                    string retString = myStreamReader.ReadToEnd();
                    return retString;
                }
            }

    8.async HttpPost 参数json格式:

     public static async Task<string> HttpPostAsync(string url, string postData)
            {
                try
                {
                    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "POST";
                    request.ContentType = "application/json";
                    request.ContentLength = byteArray.Length;
                    using (Stream myRequestStream = await request.GetRequestStreamAsync())
                    {
                        myRequestStream.Write(byteArray, 0, byteArray.Length);
                        WebResponse response = request.GetResponse();
                        StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                        return myStreamReader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    Logger.Info(ex);
                    return string.Empty;
                }
               
            }

    9.async HttpPost 键值对方式:

     public static async Task<string> HttpPostAsync(string url, Dictionary<string,string> paramList)
            {
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    StringBuilder sb = new StringBuilder();
                    foreach (var item in paramList)
                    {
                        sb.Append(item.Key + "=" + item.Value + "&");
                    }
                    string paramData = sb.ToString().Trim('&');
                    byte[] data = System.Text.Encoding.UTF8.GetBytes(paramData);
                    request.Method = "post";
                    //这句不能少  不难post请求 得不到对应的响应结果
                    request.ContentType = "application/x-www-form-urlencoded";
                    using (Stream myRequestStream = await request.GetRequestStreamAsync())
                    {
                        myRequestStream.Write(data, 0, data.Length);
                        WebResponse response = request.GetResponse();
                        StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                        return myStreamReader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    Logger.Info(ex);
                    return string.Empty;
                }
    
            }
  • 相关阅读:
    Jquery同步载入数据
    fireEvent方法
    条件判断问题,不太清楚有什么区别!
    Request.QueryString,Request.Form与JavaScript中模态窗口传参
    SQL求百分比
    event.srcElement
    判断输入信息为数值类型
    SQL 表变量,临时表
    读写二进制文件
    串口通信
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/5531747.html
Copyright © 2011-2022 走看看