https://www.cnblogs.com/xudong-bupt/p/10014915.html
"唯有高屋建瓴,方可水到渠成"
主要功能实现判断远程文件(图片等)是否存在。
private bool GetServerFileExists(string URL)
{
try
{
//用于把一请求的响应将会被放到一个WebRequest对象里
System.Net.WebRequest s = System.Net.WebRequest.Create(URL);
s.Timeout = 16000; //设置连接请求时间(以毫秒为单位)
//然后这个GetResponse对象被用来建立一个流来取出XML的值
System.Net.WebResponse a = s.GetResponse();
//关闭请求
a.Close();
s.Abort();
return true;
}
catch
{
return false;
}
}
WebApi认证刷选器获取Post参数
使用webapi再所难免会遇到认证需求,毕竟没有认证的服务安全隐患太大。
我们在webapi中进行认证基本上都是新增一个刷选器,继承AuthorizeAttribute。继承后需要重写HandleUnauthorizedRequest方法实现拦截上下文,拦截后可对本次请求进行验证。
如果你的webapi认证秘钥是通过参数进行则需要将参数取出来进行比较,比较通过则认证通过,否则返回401。
我在写的时候发现get方式很简单,因为参数是直接在url后,截取下就ok了,但是post方式则取不到参数,在网上找了好久发现可以通过以下代码截取post的参数:
C# 过滤SQL 字符串中的 参数
复制代码
/// <summary>
/// 参数过滤
/// </summary>
/// <param name="parameters"></param>
/// <param name="sql"></param>
/// <returns></returns>
public static IEnumerable<PropertyInfo> FilterParameters(IEnumerable<PropertyInfo> parameters, string sql)
{
return parameters.Where(p => Regex.IsMatch(sql, @"[?@:]" + p.Name + "([^a-z0-9_]+|$)", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant));
}
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
base.HandleUnauthorizedRequest(actionContext);
HttpContent content = actionContext.Request.Content;
//执行该句,会将action的参数实体置为空
Task<JObject> task = content.ReadAsAsync<JObject>();
var result = task.Result;
if (!data.CheckSign(model.access_secret, task.Result))
{
return false;
}
}
https://cloud.tencent.com/developer/ask/54522
用LINQ:
var sortedList = _allStatInfo.OrderBy(si => si.date).ToList();
排序原始列表:
_allStatInfo.Sort(new Comparison<StatInfo>((x, y) => DateTime.Compare(x.date, y.date)));
https://www.wangeditor.com/
https://www.jq22.com/demo/jiaoben3059-150703144408
https://www.jq22.com/demo/jquery-nav-150115200103
https://sc.chinaz.com/jiaoben/210223306750.htm
https://www.jq22.com/demo/jqueryModernMenu-141223214319
https://www.jq22.com/demo/appmobanshenhuo201907230053/
https://www.jq22.com/demo/jquery-nav-150216115520/
input选择之后边框怎么去掉 input:focus { outline: none; }
windows按序号文件批量加后缀名
https://sc.chinaz.com/jiaoben/200902362290.htm
https://www.cnblogs.com/ljy-/category/1624327.html
uni-app 引入Iconfont-阿里巴巴矢量图
手机app模板
https://www.sucaihuo.com/templates
background-color: #0088ff;
border-radius: 4px;
box-shadow: 0 6px 12px rgb(134 140 150 / 65%);
您的关注、点赞、在看、分享真的真的真的是我创作的最大动力!#
创过业,赔过钱。遂转行,程序员。
从外包,到大厂。写代码,写文章。
胡思乱想,文章沙雕。
欢迎关注,与君同好。
C#中Newtonsoft.Json 序列化和反序列化 时间格式
Newtonsoft.Json.Converters.IsoDateTimeConverter timeFormat = new Newtonsoft.Json.Converters.IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
context.Response.Write(JsonConvert.SerializeObject(response, timeFormat));
context.Response.End();
Deserializing yyyyMMddTHHmmssZ DateTime format using JsonConvert.DeserializeObject
我有一个带DateTime字段的JSON,可以使用JsonConvert.DeserializeObject反序列化,并且它按预期工作,除非使用ISO8601格式之一的yyyyMMddTHHmmssZ DateTime格式。
根据IsoDateTimeConverter的文档:
Converts a to and from the ISO 8601
date format (e.g."2008-04-12T12:53Z").
那么为什么这样的代码:
1
2
3
var serializeSettings=new JsonSerializerSettings();
serializeSettings.Converters.Add(new IsoDateTimeConverter());
var result= JsonConvert.DeserializeObject<EmployementHistory>(json,serializeSettings);
引发以下异常:
{System.FormatException: String was not recognized as a valid
DateTime. at System.DateTimeParse.Parse(String s,
DateTimeFormatInfo dtfi, DateTimeStyles styles) at
Newtonsoft.Json.Converters.IsoDateTimeConverter.ReadJson(JsonReader
reader, Type objectType, Object existingValue, JsonSerializer
serializer)
我的模特:
1
2
3
4
5
public class EmployementHistory
{
public string EmployeeName { get; set; }
public DateTime PositionChangeDate { get; set; }
}
Json示例:
{"employeename":"Tom","PositionChangeDate":"20180710T135034Z" }
相关讨论
根据官方文档,IsoDateTimeConverter具有一个名为DateTimeFormat的公共属性,您可以在其中设置自己的格式-
因此,您所需要做的就是提供以下格式:
1
2
3
var serializeSettings=new JsonSerializerSettings();
serializeSettings.Converters.Add(new IsoDateTimeConverter() {DateTimeFormat ="yyyyMMddTHHmmssZ"});
var result= JsonConvert.DeserializeObject<MyClass>(json,serializeSettings);