2025-03-27 15:05:14 +08:00

200 lines
6.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Reflection;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Web;
using System.Web.Script.Serialization;
using SuperMap.RealEstate.ServiceModel;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.FrameWork.Business;
using Newtonsoft.Json;
using HZQR.Common;
using System.IO;
using Newtonsoft.Json.Linq;
namespace Personnel.Handler
{
public partial class Common
{
#region ->
/// <summary>
/// 通用对象
/// </summary>
/// <param name="ResultCode">返回结果</param>
/// <param name="FirstParameter">参数1</param>
/// <param name="SecondParameter">参数2</param>
/// <param name="ThirdParameter">参数3</param>
/// <param name="FourthParameter">参数4</param>
/// <param name="FifthParameter">参数5</param>
/// <param name="ResultDesc">备注信息</param>
public class ResultObject
{
public string ResultCode
{
get;
set;
}
public string FirstParameter
{
get;
set;
}
public string SecondParameter
{
get;
set;
}
public string ThirdParameter
{
get;
set;
}
public string FourthParameter
{
get;
set;
}
public string FifthParameter
{
get;
set;
}
public string ResultDesc
{
get;
set;
}
}
#endregion
#region -> HTTP报文请求
public static string HttpUrlPost(string str, string RequestUrl, string ContentType = "application/x-www-form-urlencoded", int timeout = 0)
{
try
{
//LogUtil.WriteLog(null, "post地址" + RequestUrl, DateTime.Now.ToString("yyyyMMdd") + "_Extra");
CookieContainer cookieContainer = new CookieContainer();
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(str);
// 设置提交的相关参数
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
HttpWebRequest request = WebRequest.Create(RequestUrl) as HttpWebRequest;
if (timeout > 0)
{
request.Timeout = timeout * 1000;
}
request.Method = "POST";
request.KeepAlive = false;
request.ContentType = ContentType;
request.CookieContainer = cookieContainer;
request.ContentLength = postBytes.Length;
using (System.IO.Stream reqStream = request.GetRequestStream())
{
reqStream.Write(postBytes, 0, postBytes.Length);
}
//LogUtil.WriteLog(null, "post产生结果开始解析", DateTime.Now.ToString("yyyyMMdd") + "_Extra");
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//在这里对接收到的页面内容进行处理
//直到request.GetResponse()程序才开始向目标网页发送post请求
System.IO.Stream responseStream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, System.Text.Encoding.GetEncoding("utf-8"));
string val = reader.ReadToEnd();
//LogUtil.WriteLog(null, "post结果" + val, DateTime.Now.ToString("yyyyMMdd") + "_Extra");
return val;
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
#endregion
#region -> MD5转译
public static string GetMD5(string str)
{
MD5 _MD5 = new MD5CryptoServiceProvider();
byte[] t = _MD5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(str));
StringBuilder sb = new StringBuilder(32);
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
#endregion
#region -> DateTime类型转换为long类型
/// <summary>
/// 将DateTime类型转换为long类型
/// </summary>
/// <param name="dt">时间</param>
/// <returns></returns>
public static long ConvertDataTimeLong(DateTime dt)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
TimeSpan toNow = dt.Subtract(dtStart);
long timeStamp = toNow.Ticks;
timeStamp = long.Parse(timeStamp.ToString().Substring(0, timeStamp.ToString().Length - 7));
return timeStamp;
}
#endregion
#region -> C#
/// <summary>
/// 时间戳转为C#格式时间
/// </summary>
/// <param name="timeStamp">Unix时间戳格式</param>
/// <returns>C#格式时间</returns>
public static DateTime GetTimeByTimeStamp(string timeStamp)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow);
}
#endregion
#region ->
/// <summary>
/// 类型匹配
/// </summary>
/// <param name="type">类型</param>
/// <param name="typeName">类型名称</param>
/// <returns></returns>
public static bool IsType(Type type, string typeName)
{
if (type.ToString() == typeName)
return true;
if (type.ToString() == "System.Object")
return false;
return IsType(type.BaseType, typeName);
}
#endregion
}
}