You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.4 KiB
131 lines
4.4 KiB
using System; |
|
using System.Collections; |
|
using System.IO; |
|
using DotXxlJob.Core.Model; |
|
using Hessian.Net; |
|
using Newtonsoft.Json; |
|
|
|
namespace HessianReader |
|
{ |
|
class Program |
|
{ |
|
static void Main(string[] args) |
|
{ |
|
byte[] myBinary = File.ReadAllBytes("1547621183.dat"); |
|
|
|
foreach (var i in myBinary) |
|
{ |
|
Console.Write("0x"); |
|
Console.Write(i.ToString("x2")); |
|
Console.Write(","); |
|
} |
|
|
|
Console.WriteLine(Environment.NewLine); |
|
Console.WriteLine("---------------------------------------------------------------"); |
|
|
|
|
|
var serializer = new DataContractHessianSerializer(typeof (RpcRequest)); |
|
|
|
using (var stream1 = new MemoryStream(myBinary)) |
|
{ |
|
|
|
var s = new Hessian.Deserializer(stream1); |
|
var a = s.ReadValue(); |
|
Console.WriteLine(a); |
|
a = s.ReadValue(); |
|
Console.WriteLine(a); |
|
Console.WriteLine(JsonConvert.SerializeObject(a)); |
|
a = s.ReadValue(); |
|
Console.WriteLine(a); |
|
Console.WriteLine(JsonConvert.SerializeObject(a)); |
|
a = s.ReadValue(); |
|
Console.WriteLine(a); |
|
Console.WriteLine(JsonConvert.SerializeObject(a)); |
|
} |
|
|
|
return; |
|
|
|
RpcRequest req = new RpcRequest { |
|
RequestId = "71565f61-94e8-4dcf-9760-f2fb73a6886a", |
|
CreateMillisTime = 1547621183585, |
|
AccessToken = "", |
|
ClassName = "com.xxl.job.core.biz.ExecutorBiz", |
|
MethodName = "run", |
|
ParameterTypes = new HessianArrayList {"class com.xxl.job.core.biz.model.TriggerParam"}, |
|
Version = "null", |
|
Parameters = new HessianArrayList() |
|
}; |
|
|
|
var p =new TriggerParam { |
|
JobId=1, |
|
ExecutorHandler="demoJobHandler", |
|
ExecutorParams="111", |
|
ExecutorBlockStrategy="SERIAL_EXECUTION", |
|
ExecutorTimeout=0, |
|
LogId=5, |
|
LogDateTime=1547621183414L, |
|
GlueType="BEAN", |
|
GlueSource="", |
|
GlueUpdateTime=1541254891000, |
|
BroadcastIndex=0, |
|
BroadcastTotal=1 |
|
}; |
|
req.Parameters.Add(p); |
|
|
|
byte[] distArray; |
|
|
|
using (MemoryStream stream = new MemoryStream()) |
|
{ |
|
|
|
|
|
serializer.WriteObject(stream,req); |
|
//Console.WriteLine(Environment.NewLine); |
|
//Console.WriteLine("---------------------------"+ stream.Length+"------------------------------------"); |
|
stream.Flush(); |
|
distArray =stream.ToArray(); |
|
} |
|
foreach (var j in distArray) |
|
{ |
|
Console.Write("0x"); |
|
Console.Write(j.ToString("x2")); |
|
Console.Write(","); |
|
} |
|
|
|
Console.WriteLine(Environment.NewLine); |
|
Console.WriteLine("---------------------------------------------------------------"); |
|
|
|
using (var stream2 = new MemoryStream(distArray)) |
|
{ |
|
|
|
var instance = serializer.ReadObject(stream2) as RpcRequest; |
|
|
|
Console.WriteLine(JsonConvert.SerializeObject(instance)); |
|
} |
|
/** |
|
* requestId='71565f61-94e8-4dcf-9760-f2fb73a6886a', |
|
* createMillisTime=1547621183585, |
|
* accessToken='', |
|
* className='com.xxl.job.core.biz.ExecutorBiz', |
|
* methodName='run', |
|
* parameterTypes=[class com.xxl.job.core.biz.model.TriggerParam], |
|
* parameters=[ |
|
* TriggerParam{ |
|
* jobId=1, |
|
* executorHandler='demoJobHandler', |
|
* executorParams='111', |
|
* executorBlockStrategy='SERIAL_EXECUTION', |
|
* executorTimeout=0, |
|
* logId=5, |
|
* logDateTim=1547621183414, |
|
* glueType='BEAN', |
|
* glueSource='', |
|
* glueUpdatetime=1541254891000, |
|
* broadcastIndex=0, |
|
* broadcastTotal=1 |
|
* } |
|
* ], version='null' |
|
* |
|
*/ |
|
} |
|
} |
|
} |