HVideoManagerO.cs
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using TSA_V.Common;
namespace TSA_V.DeviceLibrary
{
public class HVideoManagerO
{
public static string LastMsg = "";
public static bool StartRun()
{
int ServerPort = 8765;
if (ServerPort > 0)
{
HttpServer.Start(ServerOnReceived, ServerPort);
LogUtil.info("启动HttpServer接口服务完成, 端口号【" + ServerPort + "】");
}
return true;
}
public static void StopRun()
{
HttpServer.Stop();
}
private static string ImgUpload = "/rest/api/v1/imgUpload";
private static string ServerOnReceived(string reqPath, string paramStr)
{
if (paramStr == "" || reqPath=="")
{
return "";
}
LogUtil.info("ServerOnReceived [" + reqPath + "] [" + paramStr + "] ");
//paramStr = paramStr.Replace("%23", "#");
try
{
Dictionary<string, string> paramMap = JsonHelper.DeserializeJsonToObject< Dictionary<string, string>>(paramStr);
if (reqPath.Equals(ImgUpload))
{
bool result=paramMap.TryGetValue("input", out string imgStr);
if (result)
{
LastMsg = imgStr;
}
}
else
{
LogUtil.info("[" + reqPath + "]没有相关处理");
return "[" + reqPath + "]没有相关处理";
}
return "OK";
}
catch (Exception ex)
{
LogUtil.info("[" + reqPath + "][" + paramStr + "]处理错误:" + ex.ToString());
return "Error";
}
}
private static Dictionary<string, string> GetParam(string paramStr)
{
Dictionary<string, string> paramMap = new Dictionary<string, string>();
try
{
string[] paramArray = paramStr.Split('&');
foreach (string param in paramArray)
{
string[] data = param.Split('=');
if (data.Length == 2)
{
string paramName = data[0];
string paramValue = data[1];
//LogUtil.info("解析参数【"+paramStr+"】 : ["+paramName+"]["+paramValue+"]");
paramMap.Add(paramName, paramValue);
}
}
}
catch (Exception ex)
{
LogUtil.error("解析参数【" + paramStr + "】出错:" + ex.ToString());
}
return paramMap;
}
private static Bitmap Base64StringToImage(string inputStr)
{
try
{
byte[] arr = Convert.FromBase64String(inputStr);
using (MemoryStream ms = new MemoryStream(arr))
{
Bitmap bmp = new Bitmap(ms);
ms.Close();
return bmp;
}
}
catch (Exception ex)
{
LogUtil.error("Base64StringToImage 转换失败/nException:" +ex.ToString());
return null;
}
}
public static Bitmap GetLastImg()
{
string inputStr = LastMsg;
if (LastMsg != "")
{
return Base64StringToImage(inputStr);
}
return null;
}
}
}