XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.ServerInteractive

完善适配ClientRequester

ce61e16
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

6 个文件 +63 -15
Added .idea/.idea.XFEExtension.NetCore.ServerInteractive/.idea/.gitignore +15 -0
@@ -0,0 +1,15 @@
1 # 默认忽略的文件
2 /shelf/
3 /workspace.xml
4 # Rider 忽略的文件
5 /contentModel.xml
6 /projectSettingsUpdater.xml
7 /.idea.XFEExtension.NetCore.ServerInteractive.iml
8 /modules.xml
9 # 基于编辑器的 HTTP 客户端请求
10 /httpRequests/
11 # 已忽略包含查询文件的默认文件夹
12 /queries/
13 # Datasource local storage ignored files
14 /dataSources/
15 /dataSources.local.xml
Added .idea/.idea.XFEExtension.NetCore.ServerInteractive/.idea/encodings.xml +4 -0
@@ -0,0 +1,4 @@
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4">
3 <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
4 </project>
Added .idea/.idea.XFEExtension.NetCore.ServerInteractive/.idea/indexLayout.xml +8 -0
@@ -0,0 +1,8 @@
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4">
3 <component name="UserContentModel">
4 <attachedFolders />
5 <explicitIncludes />
6 <explicitExcludes />
7 </component>
8 </project>
Added .idea/.idea.XFEExtension.NetCore.ServerInteractive/.idea/vcs.xml +6 -0
@@ -0,0 +1,6 @@
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4">
3 <component name="VcsDirectoryMappings">
4 <mapping directory="$PROJECT_DIR$" vcs="Git" />
5 </component>
6 </project>
Modified XFEExtension.NetCore.ServerInteractive.Test/Program.cs +27 -12
@@ -10,7 +10,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Test;
10 10
11 11 internal class Program
12 12 {
13 private static readonly XFEClientRequester XFEClientRequester = XFEClientRequesterBuilder.CreateBuilder()
13 private static readonly XFEClientRequester s_xFEClientRequester = XFEClientRequesterBuilder.CreateBuilder()
14 14 .UseXFEStandardRequest<UserFaceInfo>()
15 15 .AddRequest("test", (_, _, _) => new
16 16 {
@@ -18,22 +18,22 @@ internal class Program
18 18 }, response => response)
19 19 .Build(options =>
20 20 {
21 options.RequestAddress = "http://localhost:3300/management";
21 options.RequestAddress = "http://localhost:3305/api";
22 22 });
23 23
24 24 private static readonly TableRequester TableRequester = new();
25 25
26 static Program() => XFEClientRequester.MessageReceived += XFEClientRequester_MessageReceived;
26 static Program() => s_xFEClientRequester.MessageReceived += XFEClientRequester_MessageReceived;
27 27
28 28 private static void XFEClientRequester_MessageReceived(object? sender, ServerInteractiveEventArgs e)
29 29 {
30 30 Console.WriteLine($"请求完成:{e.StatusCode}\t{e.Message}");
31 31 }
32 32
33 [SMTest("Admin", "123456")]
33 //[SMTest("Admin", "123456")]
34 34 public static async Task Login(string account, string password)
35 35 {
36 var result = await XFEClientRequester.Request<UserLoginResult<UserFaceInfo>>("login", account, password);
36 var result = await s_xFEClientRequester.Request<UserLoginResult<UserFaceInfo>>("login", account, password);
37 37 if (result.StatusCode == System.Net.HttpStatusCode.OK)
38 38 {
39 39 Console.WriteLine(result.Result.Session);
@@ -41,9 +41,9 @@ internal class Program
41 41 Console.WriteLine(result.Result.UserInfo.Id);
42 42 Console.WriteLine(result.Result.UserInfo.NickName);
43 43 Console.WriteLine(result.Result.UserInfo.PermissionLevel);
44 TableRequester.RequestAddress = XFEClientRequester.RequestAddress;
44 TableRequester.RequestAddress = s_xFEClientRequester.RequestAddress;
45 45 TableRequester.Session = result.Result.Session;
46 TableRequester.DeviceInfo = XFEClientRequester.DeviceInfo;
46 TableRequester.DeviceInfo = s_xFEClientRequester.DeviceInfo;
47 47 }
48 48 else
49 49 {
@@ -53,11 +53,11 @@ internal class Program
53 53 }
54 54
55 55 //[SMTest]
56 public static async Task Test()
56 public static async Task TestBench()
57 57 {
58 58 await Parallel.ForEachAsync(Enumerable.Range(0, 100000), async (_, _) =>
59 59 {
60 var result = await XFEClientRequester.Request<string>("test");
60 var result = await s_xFEClientRequester.Request<string>("test");
61 61 if (result.StatusCode == System.Net.HttpStatusCode.OK)
62 62 {
63 63 Console.WriteLine(result.Result);
@@ -70,10 +70,25 @@ internal class Program
70 70 });
71 71 }
72 72
73 [SMTest]
74 public static async Task Test()
75 {
76 var result = await s_xFEClientRequester.Request<string>("test");
77 if (result.StatusCode == System.Net.HttpStatusCode.OK)
78 {
79 Console.WriteLine(result.Result);
80 }
81 else
82 {
83 Console.WriteLine(result.StatusCode);
84 Console.WriteLine(result.Message);
85 }
86 }
87
73 88 //[SMTest]
74 89 public static async Task ReLogin()
75 90 {
76 var result = await XFEClientRequester.Request<UserFaceInfo>("relogin");
91 var result = await s_xFEClientRequester.Request<UserFaceInfo>("relogin");
77 92 if (result.StatusCode == System.Net.HttpStatusCode.OK)
78 93 {
79 94 Console.WriteLine(result.Result.Id);
@@ -92,7 +107,7 @@ internal class Program
92 107 {
93 108 try
94 109 {
95 var result = await XFEClientRequester.Request<DateTime>("check_connect");
110 var result = await s_xFEClientRequester.Request<DateTime>("check_connect");
96 111 if (result.StatusCode == System.Net.HttpStatusCode.OK)
97 112 {
98 113 Console.WriteLine(result.Result);
@@ -112,7 +127,7 @@ internal class Program
112 127 //[SMTest]
113 128 public static async Task GetLog()
114 129 {
115 var result = await XFEClientRequester.Request<string>("get_log", DateTime.MinValue, DateTime.MaxValue);
130 var result = await s_xFEClientRequester.Request<string>("get_log", DateTime.MinValue, DateTime.MaxValue);
116 131 if (result.StatusCode == System.Net.HttpStatusCode.OK)
117 132 {
118 133 Console.WriteLine(result.Result);
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs +3 -3
@@ -74,7 +74,7 @@ public abstract class XFEClientRequester : IRequesterBase
74 74 xFEService.Route = serviceName;
75 75 xFEService.DeviceInfo = DeviceInfo;
76 76 xFEService.Parameters = parameters;
77 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, xFEService.PostRequest(), _jsonSerializerOptions);
77 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress + $"/{serviceName}", xFEService.PostRequest(), _jsonSerializerOptions);
78 78 result.StatusCode = code;
79 79 if (code == HttpStatusCode.OK)
80 80 {
@@ -93,7 +93,7 @@ public abstract class XFEClientRequester : IRequesterBase
93 93 }
94 94 else if (StandardClientInstanceRequestDictionary.TryGetValue(serviceName, out var instance))
95 95 {
96 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.ConstructBody(Session, DeviceInfo, parameters), _jsonSerializerOptions);
96 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress + $"/{serviceName}", instance.ConstructBody(Session, DeviceInfo, parameters), _jsonSerializerOptions);
97 97 result.StatusCode = code;
98 98 if (code == HttpStatusCode.OK)
99 99 {
@@ -114,7 +114,7 @@ public abstract class XFEClientRequester : IRequesterBase
114 114 instance.Route = serviceName;
115 115 instance.DeviceInfo = DeviceInfo;
116 116 instance.Parameters = parameters;
117 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.PostRequest(), _jsonSerializerOptions);
117 var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress + $"/{serviceName}", instance.PostRequest(), _jsonSerializerOptions);
118 118 result.StatusCode = code;
119 119 if (code == HttpStatusCode.OK)
120 120 {