C# 常用的工具方法
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, , 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, , 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;
} }
C# 常用的工具方法的更多相关文章
- javscript 一些常用的工具方法
一些工作中经常会用到的js代码,可以封装成一个工具库. 积少成多,从现在开始吧! -------------- 1 . 判断一段文字的长度.要求中文相当于2个字符,非中文的相当于1个字符 String ...
- commonJS,常用js工具方法
说明:平时项目用到的一些常见过滤方法,有些是vue过滤器,稍微修改下吧,我就不改了. js四舍五入不准确的解决(重写方法): Number.prototype.toFixed = function(l ...
- js 常用业务工具方法 (es5,es6)持续更新
数组去重 数组去重最原始的方法就是使用双层循环. es5: // 使用indexOf function unique(array) { var res = []; for (var i = 0, le ...
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- JQuery $ $.extend(),$.fn和$.fn.extend javaScript对象、DOM对象和jQuery对象及转换 工具方法(utility)
一.为什么jquery前面要写$ Javascript没有package的概念,而作者又希望所有jQuery相关的API都能通过一个全局性的对象来容纳. 名为jQuery的全局变量就是这样一个对象,不 ...
- jquery常用的一些方法
一.选择网页元素(标签选择器) $(document) //选择整个文档对象 $('#myId') //选择ID为myId的网页元素 $('div.myClass') // 选择class为myCla ...
- JQuery系列(3) - 工具方法
jQuery函数库提供了一个jQuery对象(简写为$),这个对象本身是一个构造函数,可以用来生成jQuery对象的实例.有了实例以后,就可以调用许多针对实例的方法,它们定义jQuery.protot ...
- 【跟着子迟品 underscore】常用类型判断以及一些有用的工具方法
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...
- Underscore.js 常用类型判断以及一些有用的工具方法
1. 常用类型判断以及一些有用的工具方法 underscore.js 中一些 JavaScript 常用类型检查方法,以及一些工具类的判断方法. 首先我们先来谈一谈数组类型的判断.先贴出我自己封装好的 ...
随机推荐
- hdu3038How Many Answers Are Wrong(带权并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题解转载自:https://www.cnblogs.com/liyinggang/p/53270 ...
- rxjs学习笔记
api List Rx.Observable.amb(...args) -存在竞争关系,amb里的流只能触发一个,并且忽略其他未处理的流. eq: <body> <input id= ...
- SQL查询语句的进阶使用
MySQL的进阶使用 sql语句一些功能的使用 导入现有大量数据文件步骤 1) 把*.sql文件拷贝到Linux某一位置(例如Desktop) 2) Linux命令行进入该位置 cd ~/Deskto ...
- Git中撤销提交
Git的几种状态 未修改 原始内容 已修改 ↓ 工 作 区 已暂存 ↓ git add 暂 存 区 已提交 ↓ git commit 本地仓库 已推送 ↓ git push 远程仓库 注意:下面所有命 ...
- 洛谷P1196 银河英雄传说
大意:你有30000个队列,第i个队列中只有i 有T个操作,1,把某个队列头接到另一个队列尾. 2,问两个元素之间的距离. 本题主要有三种解法. ①带权并查集. 具体来说就是,并查集维护当前集合的大小 ...
- webpack 非严格模式设置 npm i babel-plugin-transform-remove-strict-mode
安装插件:npm i babel-plugin-transform-remove-strict-mode 在.babelrc文件的插件项添加:"transform-remove-strict ...
- JMeter请求执行次数 你想执行几次就执行几次
今天介绍下JMeter如何控制请求执行次数 主要有两种方式: 方式一:通过循环控制器控制每个请求的执行次数 例如:脚本执行规律是这样的,login-->customerPage-->sea ...
- log4net 开启内部调试
大家都在用LOG4NET,但这是封装好的,在有时我们找不到原因时会想到是不是发生在里面,比如,配置好了日志记录到数据库(Mysql.Oracle.Sql Server)等,但就是记录不上,又找不到原因 ...
- opencv: 轮廓提取;
一般轮廓提取是通过对图像的梯度进行卷积计算,得到图像边缘(滤波),常用的边缘检测方法有candy.sobel. Laplacian等,再对二值化后的边缘图像进行轮廓计算: 1.Candy算子: cv: ...
- 兄弟连Linux运维学习笔记
最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux----------------------Unix与Linux ...